https://gcc.gnu.org/bugzilla/show_bug.cgi?id=120608
Bug ID: 120608
Summary: error: cannot tail-call: other reasons when using
address sanitizer
Product: gcc
Version: 16.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: carlosgalvezp at gmail dot com
Target Milestone: ---
Hi,
We are bumping our GCC installation from
6db9d4e954bff3dfd926c7c9b71e41e47b7089c8 to
d5050287acd28cbe23df527605449f514a659bba and we encounter this compile error:
src/google/protobuf/generated_message_tctable_lite.cc:310:45: error: cannot
tail-call: other reasons
310 | PROTOBUF_MUSTTAIL return table->fallback(PROTOBUF_TC_PARAM_PASS);
| ~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
We have reported this to the protobuf repo
(https://github.com/protocolbuffers/protobuf/issues/21333), and they suggest to
open a bug report here.
Command to reproduce:
g++ -c -fsanitize=address src/google/protobuf/generated_message_tctable_lite.cc
-I src/
The error does not appear if we don't compile with sanitizer.
Source file:
https://github.com/protocolbuffers/protobuf/blob/v21.12/src/google/protobuf/generated_message_tctable_lite.cc
Preprocessed source is attached to this bug report.
Let me know if there's anything else I can provide to help triaging the issue!