lewissbaker added inline comments.
================ Comment at: test/SemaCXX/coroutines.cpp:299-311 // FIXME: The spec says this is ill-formed. void operator=(CtorDtor&) { co_yield 0; // expected-error {{'co_yield' cannot be used in a copy assignment operator}} } void operator=(CtorDtor const &) { co_yield 0; // expected-error {{'co_yield' cannot be used in a copy assignment operator}} } ---------------- GorNishanov wrote: > modocache wrote: > > lewissbaker wrote: > > > Not related to this diff, but... > > > > > > I don't think that these should be ill-formed. > > > > > > According to N4775 there are only exclusions added for [class.ctor] and > > > [class.dtor]. > > > I can't see anything in the spec that says that assignment special member > > > functions cannot be coroutines. > > That's a great point. Could you create a Bugzilla for this work? And maybe > > we can get @GorNishanov's opinion? > In 2015, such as https://wg21.link/N4499 there was a blank prohibition: > "A special member function shall not be a coroutine." > > Later, at @rsmith suggestion, we relaxed it a little and banned only > constructors and destructors. > > I am not yet aware of any use cases where such coroutines would be useful. See https://bugs.llvm.org/show_bug.cgi?id=40997 Repository: rC Clang CHANGES SINCE LAST ACTION https://reviews.llvm.org/D59076/new/ https://reviews.llvm.org/D59076 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits