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.

Reply via email to