On Fri, Apr 6, 2018 at 5:01 AM, Paolo Carlini <paolo.carl...@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