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

            Bug ID: 80412
           Summary: [c++17] crash with class template deduction guide and
                    inheritance
           Product: gcc
           Version: unknown
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: h2+bugs at fsfe dot org
  Target Milestone: ---

Created attachment 41188
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=41188&action=edit
intermediate file

% uname -a 
FreeBSD <SNIP> 11.0-RELEASE-p1 FreeBSD 11.0-RELEASE-p1 #0 r306420: Thu Sep 29
01:43:23 UTC 2016     r...@releng2.nyi.freebsd.org:/usr/obj/usr/src/sys/GENERIC
 amd64

% g++7 --version
g++7 (FreeBSD Ports Collection) 7.0.1 20170402 (experimental)
Copyright (C) 2017 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.


I have a class template that has a user defined type deduction guide and
another class template that inherits from the first (and doesn't have its own
guide).
If I try to instantiate an object of the derived class without <>, i.e.
triggering type deduction, I first get an error that type deduction failed and
then a crash:

/home/mi/h4nn3s/devel/seqan3/test/alphabet/quality/composition_test.cpp:187:50:
error: class template argument deduction failed:
     quality_composition t0{dna4::C, illumina18{7}};
                                                  ^
/home/mi/h4nn3s/devel/seqan3/test/alphabet/quality/composition_test.cpp:187:50:
internal compiler error: Segmentation fault
Please submit a full bug report,
with preprocessed source if appropriate.
See <https://gcc.gnu.org/bugs/> for instructions.


I have attached the zipped .ii

Adding a manual deduction guide for the derived class template fixes the
problem. I am not sure what the expected behaviour is, i.e. whether guides
should be inherited -- if possible -- or not, but I thought I would report the
crash in any case.

Note that I use -fconcepts, but I think it is unrelated.

Reply via email to