[Bug c++/79416] New: Internal compiler error for recursive template expansion

mini at cs dot technion.ac.il gcc-bugzilla@gcc.gnu.org
Tue Feb 7 21:08:00 GMT 2017


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

            Bug ID: 79416
           Summary: Internal compiler error for recursive template
                    expansion
           Product: gcc
           Version: 5.4.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: mini at cs dot technion.ac.il
  Target Milestone: ---

Target: x86_64-linux-gnu
gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.4) 

I ran it about 10 times. 9 times I got this output:
$ g++ prog.cpp 
g++: internal compiler error: Killed (program cc1plus)
Please submit a full bug report,
with preprocessed source if appropriate.
See <file:///usr/share/doc/gcc-5/README.Bugs> for instructions.

I got this output 1 time:
$ g++ prog.cpp 

cc1plus: out of memory allocating 268435144 bytes after a total of 101212160
bytes


to reproduce:
$ cat prog.cpp 
template <int N>
void nops() __attribute((always_inline));

template <int N>
void more_nops() __attribute((always_inline));

template <int N>
inline void nops()
{
        asm("nop");
        nops<N - 1>();
}

template<>
inline void nops<0>()
{
};

template <int N>
inline void more_nops()
{
        nops<800>();
        more_nops<N - 1>();
};

template<>
inline void more_nops<0>()
{
};

int main() {
        more_nops<300>();
}

$ g++ prog.cpp


More information about the Gcc-bugs mailing list