https://gcc.gnu.org/bugzilla/show_bug.cgi?id=120942

            Bug ID: 120942
           Summary: internal compiler error happend when i lose include
                    some file
           Product: gcc
           Version: 15.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: q1210081098 at gmail dot com
  Target Milestone: ---

After running the following code, I received an internal compiler error. I know
this is due to the lack of # include<vector>, but it outputs an gcc error

```
#include <iostream>
#include <string>
#include <map>
#include <numeric>

int main() {
    std::map<std::string, std::vector<int>> gradebook;

    // Add students and their grades
    gradebook["John"] = {85, 90, 77};
    gradebook["Emily"] = {95, 88, 100};
    gradebook["Michael"] = {88, 92, 100};

    // Calculate the average grade for each student
    for (const auto& student : gradebook) {
        double average = std::accumulate(student.second.begin(),
student.second.end(), 0.0) / student.second.size();
        std::cout << "Average grade for " << student.first << ": " << average
<< "\n";
    }

    return 0;
}
```
the output is 
```
/GCC-15-COVERAGE/include/c++/15.0.1/format: In instantiation of ‘typename
std::basic_format_context<_Out, _CharT>::iterator
std::__format::__formatter_fp<_CharT>::format(_Fp,
std::basic_format_context<_Out, _CharT>&) const [with _Fp = _Float128; _Out =
std::__format::_Sink_iter<wchar_t>; _CharT = wchar_t; typename
std::basic_format_context<_Out, _CharT>::iterator =
std::basic_format_context<std::__format::_Sink_iter<wchar_t>,
wchar_t>::iterator]’:
/GCC-15-COVERAGE/include/c++/15.0.1/format:2251:22:   required from ‘typename
std::basic_format_context<_Out, _CharT>::iterator std::formatter<_Tp,
_CharT>::format(_Tp, std::basic_format_context<_Out, _CharT>&) const [with _Out
= std::__format::_Sink_iter<wchar_t>; _Tp = _Float128; _CharT = wchar_t;
typename std::basic_format_context<_Out, _CharT>::iterator =
std::basic_format_context<std::__format::_Sink_iter<wchar_t>,
wchar_t>::iterator]’
 2251 |         { return _M_f.format(__u, __fc); }
      |                  ~~~~~~~~~~~^~~~~~~~~~~
/GCC-15-COVERAGE/include/c++/15.0.1/format:4166:41:   required from
‘std::__format::_Formatting_scanner<std::__format::_Sink_iter<wchar_t>,
wchar_t>::_M_format_arg(std::size_t)::<lambda(auto:38&)> [with auto:38 =
_Float128]’
 4166 |               this->_M_fc.advance_to(__f.format(__arg, this->_M_fc));
      |                                      ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~
/GCC-15-COVERAGE/include/c++/15.0.1/format:3650:44:   required from
‘decltype(auto) std::basic_format_arg<_Context>::_M_visit(_Visitor&&,
std::__format::_Arg_t) [with _Visitor =
std::__format::_Formatting_scanner<std::__format::_Sink_iter<wchar_t>,
wchar_t>::_M_format_arg(std::size_t)::<lambda(auto:38&)>; _Context =
std::basic_format_context<std::__format::_Sink_iter<wchar_t>, wchar_t>]’
 3650 |               return std::forward<_Visitor>(__vis)(_M_val._M_f128);
      |                      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~
/GCC-15-COVERAGE/include/c++/15.0.1/format:3665:28:   required from
‘decltype(auto) std::visit_format_arg(_Visitor&&, basic_format_arg<_Context>)
[with _Visitor = __format::_Formatting_scanner<__format::_Sink_iter<wchar_t>,
wchar_t>::_M_format_arg(std::size_t)::<lambda(auto:38&)>; _Context =
basic_format_context<__format::_Sink_iter<wchar_t>, wchar_t>]’
 3665 |       return __arg._M_visit(std::forward<_Visitor>(__vis),
__arg._M_type);
      |             
~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/GCC-15-COVERAGE/include/c++/15.0.1/format:4155:23:   required from ‘constexpr
void std::__format::_Formatting_scanner<_Out,
_CharT>::_M_format_arg(std::size_t) [with _Out =
std::__format::_Sink_iter<wchar_t>; _CharT = wchar_t; std::size_t = long
unsigned int]’
 4155 |         std::visit_format_arg([this](auto& __arg) {
      |         ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
 4156 |           using _Type = remove_reference_t<decltype(__arg)>;
      |           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 4157 |           using _Formatter = typename _Context::template
formatter_type<_Type>;
      |          
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 4158 |           if constexpr (is_same_v<_Type, monostate>)
      |           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 4159 |             __format::__invalid_arg_id_in_format_string();
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 4160 |           else if constexpr (is_same_v<_Type, handle>)
      |           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 4161 |             __arg.format(this->_M_pc, this->_M_fc);
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 4162 |           else if constexpr (is_default_constructible_v<_Formatter>)
      |           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 4163 |             {
      |             ~                 
 4164 |               _Formatter __f;
      |               ~~~~~~~~~~~~~~~ 
 4165 |               this->_M_pc.advance_to(__f.parse(this->_M_pc));
      |               ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 4166 |               this->_M_fc.advance_to(__f.format(__arg, this->_M_fc));
      |               ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 4167 |             }
      |             ~                 
 4168 |           else
      |           ~~~~                
 4169 |             static_assert(__format::__formattable_with<_Type,
_Context>);
      |            
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 4170 |         }, _M_fc.arg(__id));
      |         ~~~~~~~~~~~~~~~~~~~   
/GCC-15-COVERAGE/include/c++/15.0.1/format:4150:7:   required from here
 4150 |       _M_format_arg(size_t __id) override
      |       ^~~~~~~~~~~~~
/GCC-15-COVERAGE/include/c++/15.0.1/format:1640:29: internal compiler error:
Segmentation fault
 1640 |           auto __to_chars = [&](char* __b, char* __e) {
      |                             ^~~~~~~~~~~~~~~~~~~~~~~~~~~
 1641 |             if (__use_prec)
      |             ~~~~~~~~~~~~~~~  
 1642 |               return __format::to_chars(__b, __e, __v, __fmt, __prec);
      |               ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1643 |             else if (__fmt != chars_format{})
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1644 |               return __format::to_chars(__b, __e, __v, __fmt);
      |               ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1645 |             else
      |             ~~~~             
 1646 |               return __format::to_chars(__b, __e, __v);
      |               ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1647 |           };
      |           ~                  
0x5d585b0 internal_error(char const*, ...)
.././../gcc-15/gcc/diagnostic-global-context.cc:517
0x273c6b6 crash_signal
.././../gcc-15/gcc/toplev.cc:322
g++: internal compiler error: Segmentation fault signal terminated program
cc1plus
Please submit a full bug report, with preprocessed source (by using
-freport-bug).
See <https://gcc.gnu.org/bugs/> for instructions.
```

Reply via email to