[PATCH] D66040: [Sema] Implement DR2386 for C++17 structured binding

Reid Kleckner via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Thu Aug 15 09:10:58 PDT 2019

rnk marked an inline comment as done.
rnk added a comment.

In D66040#1631658 <https://reviews.llvm.org/D66040#1631658>, @thakis wrote:

> rnk, what's the status here?

I think I can get this in today, things just got busy here and I forgot about this. I have to add that test.

Comment at: clang/test/CXX/dcl.decl/dcl.decomp/p3.cpp:15
 template<> struct std::tuple_size<Bad1> {};
-void no_tuple_size_3() { auto [x, y] = Bad1(); } // expected-error {{cannot decompose this type; 'std::tuple_size<Bad1>::value' is not a valid integral constant expression}}
+void no_tuple_size_3() { auto [x, y] = Bad1(); } // ok, omitting value is valid after DR2386
Jeroen wrote:
> In the reproduction of https://bugs.llvm.org/show_bug.cgi?id=33236 there is explicit mentioning of `const T`. It would be nice if the test cases for this fix would also have coverage for that.
I'll work it into the dr2386 test case.

  rG LLVM Github Monorepo



More information about the cfe-commits mailing list