This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [C++ Patch] PR 85227 ("[7/8/ Regression] ICE with structured binding of a forward declared variable")


On Fri, Apr 6, 2018 at 5:01 AM, Paolo Carlini <paolo.carlini@oracle.com> wrote:
> here, for an incomplete type we ICE pretty soon in find_decomp_class_base.
> Comparing to other cases too, I convinced myself that trying to complete the
> type is Ok. Also, it seems that in these functions we want to talk about
> structured binding and use an appropriate location, thus no
> complete_type_or_maybe_complain. Tested x86_64-linux.

What if, in a template, we defer trying to do bindings to an incomplete type, so

extern struct A a;

template<int>
void f()
{
  auto [x] = a;
}

struct A { int i; };

int main()
{
  f<0>();
}

works?  Probably with a pedwarn, as in xref_basetypes or
cp_parser_dot_deref_incomplete.

Jason


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]