https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113580
--- Comment #1 from GCC Commits <cvs-commit at gcc dot gnu.org> --- The master branch has been updated by Nathaniel Shead <nsh...@gcc.gnu.org>: https://gcc.gnu.org/g:ec57d183d35412aa5e0bcd7a448ccb75a4e1eab7 commit r14-8462-gec57d183d35412aa5e0bcd7a448ccb75a4e1eab7 Author: Nathaniel Shead <nathanielosh...@gmail.com> Date: Fri Jan 26 16:55:52 2024 +1100 c++: Stream additional fields for DECL_STRUCT_FUNCTION [PR113580] Currently the DECL_STRUCT_FUNCTION for a declaration is always reconstructed from scratch. This causes issues though, as some fields used by other parts of the compiler (in this case, specifically 'function_{start,end}_locus') are then not correctly initialised. This patch makes sure that these fields are also read and written. PR c++/113580 gcc/cp/ChangeLog: * module.cc (struct post_process_data): Create. (trees_in::post_decls): Use. (trees_in::post_process): Return entire vector at once. Change overload to take post_process_data instead of tree. (trees_out::write_function_def): Write needed flags from DECL_STRUCT_FUNCTION. (trees_in::read_function_def): Read them and pass to post_process. (module_state::read_cluster): Write flags into cfun. gcc/testsuite/ChangeLog: * g++.dg/modules/pr113580_a.C: New test. * g++.dg/modules/pr113580_b.C: New test. Signed-off-by: Nathaniel Shead <nathanielosh...@gmail.com>