https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85739
Bug ID: 85739 Summary: internal compiler error: in finish_member_declaration, at cp/semantics.c:3057 Product: gcc Version: 8.1.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: freddie_chopin at op dot pl Target Milestone: --- Created attachment 44111 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=44111&action=edit preprocessed source code Attached preprocessed source code. Trying to build it: -- >8 -- >8 -- >8 -- >8 -- >8 -- >8 -- >8 -- >8 -- $ arm-none-eabi-g++ -fno-use-cxa-atexit -fno-rtti -fno-exceptions -mcpu=cortex-m4 -mthumb -mfloat-abi=hard -mfpu=fpv4-sp-d16 -g -ggdb3 -O2 -ffunction-sections -fdata-sections -Wall -Wextra -Wshadow -std=gnu++17 -o Scheduler.cpp.o -c Scheduler.ii In file included from ../include/distortos/internal/scheduler/ThreadListNode.hpp:15, from ../include/distortos/internal/scheduler/ThreadControlBlock.hpp:17, from ../include/distortos/internal/scheduler/Scheduler.hpp:15, from ../source/scheduler/Scheduler.cpp:12: ../include/estd/IntrusiveList.hpp: In instantiation of 'class estd::IntrusiveListConstIterator<distortos::internal::ThreadListNode, &distortos::internal::ThreadListNode::threadListNode, distortos::internal::ThreadControlBlock>': ../source/scheduler/Scheduler.cpp:345:31: required from here ../include/estd/IntrusiveList.hpp:650:1: internal compiler error: in finish_member_declaration, at cp/semantics.c:3057 { ^ Please submit a full bug report, with preprocessed source if appropriate. See <https://gcc.gnu.org/bugs/> for instructions. $ arm-none-eabi-g++ --version arm-none-eabi-g++ (bleeding-edge-toolchain) 8.1.0 Copyright (C) 2018 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -- >8 -- >8 -- >8 -- >8 -- >8 -- >8 -- >8 -- >8 -- The exact same thing happens for gcc 7.3.0 and 6.3.0. There is no error when using `-std=gnu++11` or `-std=gnu++14`. Whether or not GNU extensions are enabled makes no difference. Let me know if I should try to narrow the problem down, as the preprocessed test case is indeed a bit huge.