https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68890
Bug ID: 68890 Summary: [5.3 Regression] ICE in verify_ctor_sanity, at cp/constexpr.c:2113 Product: gcc Version: 5.3.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: ostash at ostash dot kiev.ua Target Milestone: --- Following minimal case: #include <array> template <typename T, std::size_t N> class FixedVector : protected std::array<T, N> { public: typedef typename std::array<T, N> base; typedef uint8_t internal_size_type; constexpr FixedVector() : base() , size_(0u) {} private: internal_size_type size_; }; template <typename T> class ptr { public: typedef T element_type; constexpr ptr(T* p = nullptr) noexcept : px_(p) {} private: T* px_; }; class ForwardDeclaredClass; void func() { FixedVector<ptr<ForwardDeclaredClass>, 1> var; } gives me: constexpr-ICE.cpp: In function 'void func()': constexpr-ICE.cpp:34:45: in constexpr expansion of 'var.FixedVector<T, N>::FixedVector<ptr<ForwardDeclaredClass>, 1ul>()' constexpr-ICE.cpp:12:13: in constexpr expansion of '((FixedVector<ptr<ForwardDeclaredClass>, 1ul>*)this)->FixedVector<ptr<ForwardDeclaredClass>, 1ul>::<anonymous>.std::array<ptr<ForwardDeclaredClass>, 1ul>::array()' constexpr-ICE.cpp:34:45: internal compiler error: in verify_ctor_sanity, at cp/constexpr.c:2113 FixedVector<ptr<ForwardDeclaredClass>, 1> var; ^ Please submit a full bug report, with preprocessed source if appropriate. See <http://gcc.gnu.org/bugs.html> for instructions. on GCC 5.3.0 release: Using built-in specs. COLLECT_GCC=bin/g++ COLLECT_LTO_WRAPPER=/login/sg220044/53/bin/../libexec/gcc/x86_64-pc-linux-gnu/5.3.0/lto-wrapper Target: x86_64-pc-linux-gnu Configured with: ../gcc-5.3.0/configure --enable-bootstrap --enable-checking=release --enable-clocale=gnu --enable-__cxa_atexit --disable-fixed-point --enable-gnu-indirect-function --enable-gnu-unique-object --enable-initfini-array --enable-languages=c,c++ --disable-libmudflap --disable-libssp --disable-libstdcxx-pch --enable-libstdcxx-time --enable-libstdcxx-threads --disable-libquadmath --disable-libquadmath-support --enable-linux-futex --enable-lto --disable-multiarch --disable-multilib --disable-nls --enable-plugin --enable-secureplt --disable-sjlj-exceptions --enable-threads=posix --enable-tls --enable-vtable-verify --disable-werror --with-build-config=bootstrap-lto --with-default-libstdcxx-abi=gcc4-compatible --with-diagnostics-color=auto --with-gnu-as --with-gnu-ld --with-linker-hash-style=gnu --with-system-zlib --host=x86_64-pc-linux-gnu --build=x86_64-pc-linux-gnu --target=x86_64-pc-linux-gnu --prefix=/atse_git/ostash/tc5 Thread model: posix gcc version 5.3.0 (GCC) Same code compiles silently with July snapshot: Using built-in specs. COLLECT_GCC=/login/sg220044/storage/tc5/bin/g++ COLLECT_LTO_WRAPPER=/atse_git/ostash/tc5/libexec/gcc/x86_64-pc-linux-gnu/5.2.1/lto-wrapper Target: x86_64-pc-linux-gnu Configured with: ../gcc-5-20150728/configure --enable-bootstrap --enable-checking=release --enable-clocale=gnu --enable-__cxa_atexit --disable-fixed-point --enable-gnu-indirect-function --enable-gnu-unique-object --enable-initfini-array --enable-languages=c,c++ --disable-libmudflap --disable-libssp --disable-libstdcxx-pch --enable-libstdcxx-time --enable-libstdcxx-threads --disable-libquadmath --disable-libquadmath-support --enable-linux-futex --enable-lto --disable-multiarch --disable-multilib --disable-nls --enable-plugin --enable-secureplt --disable-sjlj-exceptions --enable-threads=posix --enable-tls --enable-vtable-verify --disable-werror --with-build-config=bootstrap-lto --with-default-libstdcxx-abi=gcc4-compatible --with-diagnostics-color=auto --with-gnu-as --with-gnu-ld --with-linker-hash-style=gnu --with-system-zlib --host=x86_64-pc-linux-gnu --build=x86_64-pc-linux-gnu --target=x86_64-pc-linux-gnu --prefix=/atse_git/ostash/tc5 Thread model: posix gcc version 5.2.1 20150728 (GCC)