https://gcc.gnu.org/bugzilla/show_bug.cgi?id=120273
Iain Sandoe <iains at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Last reconfirmed|2025-05-20 00:00:00 |2025-5-21
--- Comment #9 from Iain Sandoe <iains at gcc dot gnu.org> ---
nope - nothing has become corrupted.
One of the objectives of the changes:
cp_coroutine_transform::wrap_original_function_body ()
{
/* Avoid the code here attaching a location that makes the debugger jump. */
iloc_sentinel stable_input_loc (fn_start);
location_t loc = UNKNOWN_LOCATION;
input_location = loc;
but...deep in the lookup code (called for the co_await operator) ...
frame #5: 0x000000010022c6b0 cc1plus`cxx_make_type(code=RECORD_TYPE) at
lex.cc:1139:15
1136 {
1137 /* Set up some flags that give proper default behavior. */
1138 struct c_fileinfo *finfo =
-> 1139 get_fileinfo (LOCATION_FILE (input_location));
this is an unfortunate feature of the GCC code, there are lots of places where
it goes straight to input_location which is not helpful when synthesising code
that does not relate to the current input_location.
This part of the infrastructure does not seem to be prepared to deal with
"UNKNOWN_LOCATION" as the current input_location.
We can "fix" this by backing out of the intended improvements in debug
locations .. or, I guess, figure out how get_fileinfo should behave for an
UNKOWN_LOCATION.