[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.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D66040/new/

https://reviews.llvm.org/D66040





More information about the cfe-commits mailing list