With --enable-valgrind-annotations the change to the member function
signature in this patch triggers compilation errors during bootstrap:

/src/gcc/trunk/gcc/ggc-common.c: In function ‘void gt_pch_save(FILE*)’:
/src/gcc/trunk/gcc/ggc-common.c:509:33: error: no matching function for call to ‘vec<char>::safe_grow(size_t&)’
      vbits.safe_grow (valid_size);
                                 ^
In file included from /src/gcc/trunk/gcc/hash-table.h:248,
                 from /src/gcc/trunk/gcc/coretypes.h:476,
                 from /src/gcc/trunk/gcc/ggc-common.c:26:
/src/gcc/trunk/gcc/vec.h:1897:1: note: candidate: ‘void vec<T>::safe_grow(unsigned int, bool) [with T = char]’ vec<T, va_heap, vl_ptr>::safe_grow (unsigned len, bool exact MEM_STAT_DECL)
 ^~~~~~~~~~~~~~~~~~~~~~~
/src/gcc/trunk/gcc/vec.h:1897:1: note: candidate expects 2 arguments, 1 provided

/src/gcc/trunk/gcc/jit/jit-recording.c: In member function ‘virtual gcc::jit::recording::string* gcc::jit::recording::switch_::make_debug_string()’: /src/gcc/trunk/gcc/jit/jit-recording.c:6313:41: error: no matching function for call to ‘auto_vec<char>::safe_grow(size_t)’
 6313 |       cases_str.safe_grow (idx + 1 + len);
      |                                         ^
In file included from /src/gcc/trunk/gcc/hash-table.h:248,
                 from /src/gcc/trunk/gcc/coretypes.h:476,
                 from /src/gcc/trunk/gcc/jit/jit-recording.c:23:
/src/gcc/trunk/gcc/vec.h:1897:1: note: candidate: ‘void vec<T>::safe_grow(unsigned int, bool) [with T = char]’ 1897 | vec<T, va_heap, vl_ptr>::safe_grow (unsigned len, bool exact MEM_STAT_DECL)
      | ^~~~~~~~~~~~~~~~~~~~~~~
/src/gcc/trunk/gcc/vec.h:1897:1: note: candidate expects 2 arguments, 1 provided


Bootstrap succeeds with the patch below:

diff --git a/gcc/ggc-common.c b/gcc/ggc-common.c
index 0d528cf455c..d4691cc5448 100644
--- a/gcc/ggc-common.c
+++ b/gcc/ggc-common.c
@@ -506,7 +506,7 @@ gt_pch_save (FILE *f)
       if (__builtin_expect (RUNNING_ON_VALGRIND, 0))
        {
          if (vbits.length () < valid_size)
-           vbits.safe_grow (valid_size);
+           vbits.safe_grow (valid_size, true);
          get_vbits = VALGRIND_GET_VBITS (state.ptrs[i]->obj,
                                          vbits.address (), valid_size);
          if (get_vbits == 3)
diff --git a/gcc/jit/jit-recording.c b/gcc/jit/jit-recording.c
index b73cd76a0a0..a9e6528db69 100644
--- a/gcc/jit/jit-recording.c
+++ b/gcc/jit/jit-recording.c
@@ -6310,7 +6310,7 @@ recording::switch_::make_debug_string ()
     {
       size_t len = strlen (c->get_debug_string ());
       unsigned idx = cases_str.length ();
-      cases_str.safe_grow (idx + 1 + len);
+      cases_str.safe_grow (idx + 1 + len, true);
       cases_str[idx] = ' ';
       memcpy (&(cases_str[idx + 1]),
              c->get_debug_string (),

Martin

Reply via email to