c++: Try to complete decomp types [PR95328]
authorJakub Jelinek <jakub@redhat.com>
Thu, 28 May 2020 21:40:54 +0000 (23:40 +0200)
committerJakub Jelinek <jakub@redhat.com>
Thu, 28 May 2020 21:40:54 +0000 (23:40 +0200)
commit3d8d5ddb539a5254c7ef83414377f4c74c7701d4
treecfe6edc391bc0ab1d07f1308c16b965e39a59111
parent5c715e6a2990cfb6c15acc1ee14219523534ec69
c++: Try to complete decomp types [PR95328]

Two years ago Paolo has added the
  else if (processing_template_decl && !COMPLETE_TYPE_P (type))
    pedwarn (...);
lines into cp_finish_decomp.  For type dependent decl we punt much earlier,
but even for types which aren't type dependent COMPLETE_TYPE_P might be
false as this testcase shows, so this patch tries to complete_type first
(the reason for writing it that way is that it is then followed by another
else if and if complete_type returns error_mark_node, we shouldn't report
anything, as a bug should have been reported already.

2020-05-28  Jakub Jelinek  <jakub@redhat.com>

PR c++/95328
* decl.c (cp_finish_decomp): Call complete_type before checking
COMPLETE_TYPE_P.

* g++.dg/cpp1z/decomp53.C: New test.
gcc/cp/decl.c
gcc/testsuite/g++.dg/cpp1z/decomp53.C [new file with mode: 0644]