cpptools-srv crashes on Linux in form_exception_specification_for_generated_function #6534
Labels
bug
Language Service
more info needed
The issue report is not actionable in its current state
more votes needed
Issues that have been postponed until more community members upvote it
not reproing
We're not able to reproduce the issue (it's unlikely to get fixed until we find one).
parser
reliability
Visual Studio
Inherited from Visual Studio
Type: LanguageService
Describe the bug
Steps to reproduce
I don't have a minimal repro. I'm working on a large C++20 codebase. I see coredumps being generated whenever I try to go to a symbol's definition.
Expected behavior
Logs
Screenshots
Additional context
I am not permitted to share coredumps. But here is the stack trace.
Program terminated with signal SIGSEGV, Segmentation fault.
#0 0x000000000067d4fe in form_exception_specification_for_generated_function(a_routine*, a_symbol*) ()
[Current thread is 1 (Thread 0x7fc00b7fe700 (LWP 50494))]
(gdb) bt
#0 0x000000000067d4fe in form_exception_specification_for_generated_function(a_routine*, a_symbol*) ()
#1 0x000000000067d341 in complete_defaulted_exc_spec(a_routine*) ()
#2 0x0000000000977aa0 in is_non_throwing_routine(a_routine*) ()
#3 0x00000000008095f7 in examine_expr_for_throwing_exception(an_expr_node*, an_expr_or_stmt_traversal_block*) ()
#4 0x000000000082bddc in traverse_expr(an_expr_node*, an_expr_or_stmt_traversal_block*) ()
#5 0x0000000000800e41 in expr_might_throw(an_expr_node*) ()
#6 0x00000000007cb4d6 in check_requirement_expr(an_expr_node*, Dyn_array<a_subst_pairs_descr, FE_allocator> const&, a_ctws_state*, int, int*) ()
#7 0x00000000007cb0d2 in requires_expr_satisfied(an_expr_node*, Dyn_array<a_subst_pairs_descr, FE_allocator> const&) ()
#8 0x00000000007fbc80 in copy_template_param_expr(an_expr_node*, a_template_arg*, a_template_param*, a_type*, a_source_position*, int, int*, a_ctws_state*, a_constant*, a_constant**) ()
#9 0x00000000007cab0a in requires_clause_satisfied(an_expr_node*, a_template_arg*, a_template_param*, a_diag_list*, int*, int*) ()
#10 0x00000000007caa70 in requires_clause_satisfied(an_expr_node*, a_template_arg*, a_template_param*, a_diag_list*, int*, int*) ()
#11 0x00000000007fc600 in copy_template_param_expr(an_expr_node*, a_template_arg*, a_template_param*, a_type*, a_source_position*, int, int*, a_ctws_state*, a_constant*, a_constant**) ()
#12 0x00000000007a8d4a in make_rescan_operand_full(an_expr_node*, a_rescan_control_block*, int, an_operand*, an_operand*) ()
#13 0x00000000007a954a in make_rescan_operands(a_rescan_control_block*, an_operand*, an_operand*, an_operand*, a_source_position*, unsigned int*, a_source_position*) ()
#14 0x0000000000777fc0 in scan_arith_prefix_operator(a_rescan_control_block*, an_operand*) ()
#15 0x0000000000775129 in rescan_expr_with_substitution_internal(an_expr_node*, a_rescan_control_block*, int, an_operand*, an_operand*, int) ()
#16 0x000000000079145b in rescan_expr_with_substitution(an_expr_node*, a_type*, a_rescan_control_block*, a_constant*) ()
#17 0x00000000007fbafc in copy_template_param_expr(an_expr_node*, a_template_arg*, a_template_param*, a_type*, a_source_position*, int, int*, a_ctws_state*, a_constant*, a_constant**) ()
#18 0x00000000007cab0a in requires_clause_satisfied(an_expr_node*, a_template_arg*, a_template_param*, a_diag_list*, int*, int*) ()
#19 0x00000000007caa06 in requires_clause_satisfied(an_expr_node*, a_template_arg*, a_template_param*, a_diag_list*, int*, int*) ()
#20 0x00000000007cb07d in requires_expr_satisfied(an_expr_node*, Dyn_array<a_subst_pairs_descr, FE_allocator> const&) ()
#21 0x00000000007fbc80 in copy_template_param_expr(an_expr_node*, a_template_arg*, a_template_param*, a_type*, a_source_position*, int, int*, a_ctws_state*, a_constant*, a_constant**) ()
#22 0x00000000007cab0a in requires_clause_satisfied(an_expr_node*, a_template_arg*, a_template_param*, a_diag_list*, int*, int*) ()
#23 0x00000000007caa70 in requires_clause_satisfied(an_expr_node*, a_template_arg*, a_template_param*, a_diag_list*, int*, int*) ()
#24 0x000000000092d426 in requires_constraint_satisfied(a_symbol*, a_requires_clause*, a_template_arg*, int) ()
#25 0x000000000092d2a2 in check_template_constraints(a_symbol*, a_template_arg*, int) ()
#26 0x000000000092d864 in find_template_class_full(a_symbol*, a_template_arg**, int, a_symbol*, int, int, int, int) ()
#27 0x000000000092d58d in find_template_class(a_symbol*, a_template_arg**, int, a_symbol*, int, int, int) ()
#28 0x0000000000884584 in coalesce_template_class_reference(a_symbol*, long long, int*) ()
#29 0x0000000000885479 in coalesce_template_id(a_symbol*, a_token_kind, unsigned int, long long, int, int*) ()
#30 0x000000000086e5ab in f_is_generalized_identifier_start(long long, a_type*) ()
#31 0x00000000007403c5 in decl_specifiers(unsigned long, a_decl_parse_state*, a_decl_pos_block*) ()
#32 0x0000000000711ef8 in type_name_full(a_decl_parse_state*) ()
#33 0x0000000000715e71 in alias_declaration(a_decl_parse_state*, a_source_position*) ()
#34 0x000000000071a075 in scan_nonmember_declaration(a_decl_parse_state*, a_source_range*) ()
#35 0x0000000000721019 in namespace_declaration(a_token_kind*, int, int, a_source_position*, a_symbol**) ()
#36 0x0000000000719298 in scan_nonmember_declaration(a_decl_parse_state*, a_source_range*) ()
#37 0x000000000071ee46 in translation_unit() ()
#38 0x000000000096a2c4 in process_translation_unit(char const*, int, an_exported_template_file*) ()
#39 0x000000000067aa57 in cfe_main(int, char**) ()
#40 0x000000000098bd96 in cfe_main_exception_handler(int, char**) ()
#41 0x000000000067ab66 in edg_main(int, char**) ()
#42 0x0000000000985e68 in edge_compiler_main(int, char const**) ()
#43 0x000000000060ae67 in preparse(int, char const**, a_scout_store*, edge::translation_unit*) ()
#44 0x00000000005d33ef in a_compiler_thread::compiler_thread_routine(a_compiler_thread*) ()
#45 0x0000000000ac2f60 in execute_native_thread_routine ()
#46 0x00007fc15150d184 in start_thread () from /lib/x86_64-linux-gnu/libpthread.so.0
#47 0x00007fc15123a03d in clone () from /lib/x86_64-linux-gnu/libc.so.6
The text was updated successfully, but these errors were encountered: