Open
Description
What version of protobuf and what language are you using?
Version: v31.0
Language: C++
What operating system (Linux, Windows, ...) and version?
Windows 11 (x86_64)
What runtime / compiler are you using (e.g., python version or gcc version)
clang-cl 20.1.5
What did you do?
Steps to reproduce the behavior:
- Build protobuf with Bazel
What did you expect to see
No error
What did you see instead?
ERROR: V:/tmp/bazel/uvsah77s/external/protobuf+/src/google/protobuf/BUILD.bazel:355:11: Compiling src/google/protobuf/port.cc failed: (Exit 1): clang-cl.exe failed: error executing CppCompile command (from target @@protobuf+//src/google/protobuf:port)
cd /d V:/tmp/bazel/uvsah77s/execroot/_main
SET BAZEL_LLVM=C:\Users\kinse\scoop\apps\llvm\20.1.5
SET INCLUDE=C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.44.35207\include;C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Auxiliary\VS\include;C:\Program Files (x86)\Windows Kits\10\include\10.0.26100.0\ucrt;C:\Program Files (x86)\Windows Kits\10\\include\10.0.26100.0\\um;C:\Program Files (x86)\Windows Kits\10\\include\10.0.26100.0\\shared;C:\Program Files (x86)\Windows Kits\10\\include\10.0.26100.0\\winrt;C:\Program Files (x86)\Windows Kits\10\\include\10.0.26100.0\\cppwinrt;C:\Users\kinse\scoop\apps\llvm\20.1.5\lib\clang\20\include
SET PATH=C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.44.35207\bin\HostX64\x64;C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\Common7\IDE\VC\VCPackages;C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\Common7\IDE\CommonExtensions\Microsoft\TestWindow;C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\MSBuild\Current\bin\Roslyn;C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\Team Tools\DiagnosticsHub\Collector;C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\Common7\IDE\Extensions\Microsoft\CodeCoverage.Console;C:\Program Files (x86)\Windows Kits\10\bin\10.0.26100.0\\x64;C:\Program Files (x86)\Windows Kits\10\bin\\x64;C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\\MSBuild\Current\Bin\amd64;C:\Windows\Microsoft.NET\Framework64\v4.0.30319;C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\Common7\IDE\;C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\Common7\Tools\;;C:\WINDOWS\system32;C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\Common7\IDE\VC\Linux\bin\ConnectionManagerExe
SET PWD=/proc/self/cwd
SET TEMP=C:\Users\kinse\AppData\Local\Temp
SET TMP=C:\Users\kinse\AppData\Local\Temp
SET VSLANG=1033
C:\Users\kinse\scoop\apps\llvm\20.1.5\bin\clang-cl.exe @bazel-out/x64_windows-dbg/bin/external/protobuf+/src/google/protobuf/_objs/port/port.obj.params
# Configuration: 2f203f8b71bffd87944e565a8dcf56c50af0d65aacb4aa63e7d29b6c26d4806c
# Execution platform: //:windows_x86_64-clang-cl_platform
external/protobuf+/src/google/protobuf/port.cc(120,9): error: variable does not have a constant initializer
120 | fixed_address_empty_string{};
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
external/protobuf+/src/google/protobuf/port.cc(118,31): note: required by 'constinit' specifier here
118 | PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
| ^~~~~~~~~~~~~~~~~~
bazel-out/x64_windows-dbg/bin/external/protobuf+/src/google/protobuf/_virtual_includes/port\google/protobuf/port_def.inc(438,30): note: expanded from macro 'PROTOBUF_CONSTINIT'
438 | # define PROTOBUF_CONSTINIT constinit
| ^~~~~~~~~
external/protobuf+/src/google/protobuf/port.cc(120,9): note: pointer to subobject of heap-allocated object is not a constant expression
120 | fixed_address_empty_string{};
| ^
C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.44.35207\include\xmemory(1220,59): note: heap allocation performed here
1220 | _Container_proxy* const _New_proxy = _Unfancy(_Al.allocate(1));
| ^
1 error generated.
Anything else we should know about your project / environment
This errors only arises in c++20 debug build (-c dbg). Either non-debug build or c++17 results in successful build.
debug build | non-debug build | |
---|---|---|
/std:c++20 |
build failure | ok |
/std:c++17 |
ok | ok |