https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110110

            Bug ID: 110110
           Summary: [14 regression] nodejs/v8 fails to compile with error:
                    cannot convert
                    ‘std::vector<cppgc::internal::StatsCollector::Allocati
                    onObserver*>::iterator’ to ‘const char*’
           Product: gcc
           Version: 14.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: sjames at gcc dot gnu.org
  Target Milestone: ---

Created attachment 55252
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=55252&action=edit
v8_base_without_compiler.sweeper.ii.xz

nodejs-20.2.0 stopped compiling within the last few days on trunk.

I last built it successfully on the 31st May, but I may have been using a GCC
that was a day old at that point. I'm unsure if this is a V8 bug or a GCC bug,
but given it compiled a few days ago with trunk, I figured I'd file it here
first. I'll try a bisect in a minute.

The attached preprocessed source fails for me like:
```
$ g++ -c v8_base_without_compiler.sweeper.ii
In file included from ../../deps/v8/src/heap/cppgc/sweeper.h:14,
                 from ../../deps/v8/src/heap/cppgc/sweeper.cc:5:
../../deps/v8/src/heap/cppgc/stats-collector.h: In member function ‘void
cppgc::internal::StatsCollector::ForAllAllocationObservers(Callback)’:
../../deps/v8/src/heap/cppgc/stats-collector.h:401:48: error: cannot convert
‘std::vector<cppgc::internal::StatsCollector::AllocationObserver*>::iterator’
to ‘const char*’
In file included from
/usr/lib/gcc/aarch64-unknown-linux-gnu/14/include/g++-v14/cstdio:42,
                 from
/usr/lib/gcc/aarch64-unknown-linux-gnu/14/include/g++-v14/ext/string_conversions.h:45,
                 from
/usr/lib/gcc/aarch64-unknown-linux-gnu/14/include/g++-v14/bits/basic_string.h:4103,
                 from
/usr/lib/gcc/aarch64-unknown-linux-gnu/14/include/g++-v14/string:54,
                 from
/usr/lib/gcc/aarch64-unknown-linux-gnu/14/include/g++-v14/bits/locale_classes.h:40,
                 from
/usr/lib/gcc/aarch64-unknown-linux-gnu/14/include/g++-v14/bits/ios_base.h:41,
                 from
/usr/lib/gcc/aarch64-unknown-linux-gnu/14/include/g++-v14/ios:44,
                 from
/usr/lib/gcc/aarch64-unknown-linux-gnu/14/include/g++-v14/istream:40,
                 from
/usr/lib/gcc/aarch64-unknown-linux-gnu/14/include/g++-v14/sstream:40,
                 from ../../deps/v8/src/base/logging.h:10,
                 from ../../deps/v8/src/base/macros.h:12,
                 from ../../deps/v8/src/heap/cppgc/sweeper.h:10:
/usr/include/stdio.h:152:32: note:   initializing argument 1 of ‘int
remove(const char*)’
  152 | extern int remove (const char *__filename) __THROW;
      |                    ~~~~~~~~~~~~^~~~~~~~~~
../../deps/v8/src/heap/cppgc/sweeper.cc: In function ‘constexpr const char*
cppgc::internal::{anonymous}::ToString(MutatorThreadSweepingMode)’:
../../deps/v8/src/heap/cppgc/sweeper.cc:62:1: warning: control reaches end of
non-void function [-Wreturn-type]
```

```
gcc (Gentoo 14.0.0 p, commit 7a6b2d23ec02e75475a6123254ccd44d73827f39) 14.0.0
20230604 (experimental) 321cee7e29d1b9fc0b5e0b28f2bb8faa9eb6d3e4
Copyright (C) 2023 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
```

Reply via email to