================
@@ -11591,6 +11591,10 @@ def err_conflicting_aligned_options : Error <
 def err_coro_invalid_addr_of_label : Error<
   "the GNU address of label extension is not allowed in coroutines."
 >;
+def err_coroutine_return_type : Error<
----------------
ilya-biryukov wrote:

This makes sense, but I'm still not sure if it's better than having an 
on-by-default warning.
The use-case I imagine is adding `[[clang::coro_return_type]]` to an existing 
type. Currently, it requires fixing all (mis)uses of that type to compile the 
code and does not allow to have a two-step process (or at least makes it more 
complicated, e.g. one will have to hide the attribute under a macro).

If this was a warning, I can imagine some people marking the class with the 
attribute, rerunning the compiles to collect all places that need to be fixed 
via a warning without breaking the build and later grinding them as a separate 
step, while still preventing misuses in newly written code.

That being said, thinking more about the `std::function` angle of it, I think 
an error is a better trade-off, because there is no way to force this 
particular warning to be enabled in system headers (even `-Werror` won't help 
because it only applies if the warning wasn't previously filtered out).

https://github.com/llvm/llvm-project/pull/71945
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to