[Bug c++/80534] [7/8 Regression] 7.1 RC - internal compiler error: in finish_member_declaration, at cp/semantics.c:2963
freddie_chopin at op dot pl
gcc-bugzilla@gcc.gnu.org
Wed Apr 26 20:36:00 GMT 2017
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80534
--- Comment #1 from Freddie Chopin <freddie_chopin at op dot pl> ---
Created attachment 41276
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=41276&action=edit
preprocessed source which causes the problem - minimal version
OK, I've managed to narrow it down to a much smaller test case:
-- >8 -- >8 -- >8 -- >8 -- >8 -- >8 -- >8 -- >8 -- >8 --
$ cat ice.cpp
#include <memory>
using Storage = std::aligned_storage<sizeof(int)>::type;
using StorageUniquePointer = std::unique_ptr<Storage[]>;
StorageUniquePointer storageUniquePointer_ {new Storage[1]};
$ arm-none-eabi-g++ -c ice.cpp
In file included from
/home/freddie/bleeding-edge-toolchain/arm-none-eabi-gcc-7.0.1-RC-20170425-170426/arm-none-eabi-gcc-7.0.1-RC-20170425-170426/arm-none-eabi/include/c++/7.0.1/memory:80:0,
from ice.cpp:1:
/home/freddie/bleeding-edge-toolchain/arm-none-eabi-gcc-7.0.1-RC-20170425-170426/arm-none-eabi-gcc-7.0.1-RC-20170425-170426/arm-none-eabi/include/c++/7.0.1/bits/unique_ptr.h:
In instantiation of 'class std::unique_ptr<std::aligned_storage<4>::type [],
std::default_delete<std::aligned_storage<4>::type []> >':
/home/freddie/bleeding-edge-toolchain/arm-none-eabi-gcc-7.0.1-RC-20170425-170426/arm-none-eabi-gcc-7.0.1-RC-20170425-170426/arm-none-eabi/include/c++/7.0.1/bits/unique_ptr.h:470:2:
required from 'std::unique_ptr<_Tp [], _Dp>::unique_ptr(_Up) [with _Up =
std::aligned_storage<4>::type*; _Vp =
std::default_delete<std::aligned_storage<4>::type []>; <template-parameter-2-3>
= void; <template-parameter-2-4> = bool; _Tp = std::aligned_storage<4>::type;
_Dp = std::default_delete<std::aligned_storage<4>::type []>]'
ice.cpp:5:59: required from here
/home/freddie/bleeding-edge-toolchain/arm-none-eabi-gcc-7.0.1-RC-20170425-170426/arm-none-eabi-gcc-7.0.1-RC-20170425-170426/arm-none-eabi/include/c++/7.0.1/bits/unique_ptr.h:398:5:
internal compiler error: in finish_member_declaration, at cp/semantics.c:2963
{
^
Please submit a full bug report,
with preprocessed source if appropriate.
See <https://gcc.gnu.org/bugs/> for instructions.
$
-- >8 -- >8 -- >8 -- >8 -- >8 -- >8 -- >8 -- >8 -- >8 --
I'm attaching preprocessed source again.
The problem goes away in these situations:
- not using array as the type of std::unique_ptr;
- using anything "simple" as the "Storage" type (for example just an "int")
instead of std::aligned_storage;
- not initializing the object or initializing it with nullptr;
More information about the Gcc-bugs
mailing list