Index: clang/docs/ReleaseNotes.rst =================================================================== --- clang/docs/ReleaseNotes.rst +++ clang/docs/ReleaseNotes.rst @@ -543,6 +543,8 @@ ----------------------- - Clang now permits specifying ``--config=`` multiple times, to load multiple configuration files. +- Clang now deprecates the ``-fcoroutines-ts`` flag and the flag will be + removed in LLVM17. Please use C++20 Coroutines instead. Removed Compiler Flags ------------------------- Index: clang/include/clang/Basic/DiagnosticDriverKinds.td =================================================================== --- clang/include/clang/Basic/DiagnosticDriverKinds.td +++ clang/include/clang/Basic/DiagnosticDriverKinds.td @@ -627,6 +627,11 @@ "command line to use the libc++ standard library instead">, InGroup>; +def warn_deperecated_fcoroutines_ts_flag : Warning< + "the \"-fcoroutines-ts\" flag is deprecated and it will be removed in LLVM17; " + "use C++20 Coroutines instead">, + InGroup; + def err_drv_cannot_mix_options : Error<"cannot specify '%1' along with '%0'">; def err_drv_invalid_object_mode : Error< Index: clang/lib/Driver/ToolChains/Clang.cpp =================================================================== --- clang/lib/Driver/ToolChains/Clang.cpp +++ clang/lib/Driver/ToolChains/Clang.cpp @@ -6449,6 +6449,7 @@ if (Args.hasFlag(options::OPT_fcoroutines_ts, options::OPT_fno_coroutines_ts, false) && types::isCXX(InputType)) { + D.Diag(diag::warn_deperecated_fcoroutines_ts_flag); CmdArgs.push_back("-fcoroutines-ts"); } Index: clang/test/Driver/coroutines.cpp =================================================================== --- clang/test/Driver/coroutines.cpp +++ clang/test/Driver/coroutines.cpp @@ -5,5 +5,6 @@ // RUN: %clang -fcoroutines-ts -### %s 2>&1 | FileCheck -check-prefix=CHECK-HAS-CORO %s // RUN: %clang -fno-coroutines-ts -fcoroutines-ts -### %s 2>&1 | FileCheck -check-prefix=CHECK-HAS-CORO %s +// CHECK-HAS-CORO: the "-fcoroutines-ts" flag is deprecated and it will be removed in LLVM17; use C++20 Coroutines instead // CHECK-HAS-CORO: -fcoroutines-ts