diff options
author | Jason Merrill <jason@redhat.com> | 2020-02-04 18:49:16 -0500 |
---|---|---|
committer | Jason Merrill <jason@redhat.com> | 2020-02-05 14:14:50 -0500 |
commit | fa0c6e297b22d5883857d0db4a6a8be0967cb16f (patch) | |
tree | 8a1e21632424bc019ca81c1991b8d8e04cfa67d0 /libcpp | |
parent | efe0e5cd64be70690ba287a8dd5841a2b5eefef1 (diff) | |
download | gcc-fa0c6e297b22d5883857d0db4a6a8be0967cb16f.zip gcc-fa0c6e297b22d5883857d0db4a6a8be0967cb16f.tar.gz gcc-fa0c6e297b22d5883857d0db4a6a8be0967cb16f.tar.bz2 |
c++: Fix SEGV with malformed constructor decl.
In the testcase, since there's no declaration of T, ref_view(T) declares a
non-static data member T of type ref_view, the same type as its enclosing
class. Then when we try to do C++20 aggregate class template argument
deduction we recursively try to adjust the braced-init-list to match the
template class definition until we run out of stack.
Fixed by rejecting the template data member.
PR c++/92593
* decl.c (grokdeclarator): Reject field of current class type even
in a template.
Diffstat (limited to 'libcpp')
0 files changed, 0 insertions, 0 deletions