[PATCH] D120160: [Clang] Add `-funstable` flag to enable unstable and experimental features

Mark de Wever via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Tue Mar 1 11:56:13 PST 2022


Mordante added a comment.

Thanks for implementing this @egorzhdan! Thanks @ldionne for the notification.

`-funstable` is an option that controls multiple flags therefore I think it would be good to have a separate flag to opt-in for unstable/incomplete libc++ features. That makes it easier to _only_ opt-in to these features. Then `-funstable` can also enable that flag. Maybe `-funstable-libc++` and adding a feature `libcxx_unstable` that we can use in libc++ to detect that the flag was set.



================
Comment at: clang/include/clang/Basic/LangOptions.def:153
 LANGOPT(RelaxedTemplateTemplateArgs, 1, 0, "C++17 relaxed matching of template template arguments")
+LANGOPT(Unstable          , 1, 0, "Enable unstable and experimental features")
 
----------------
ldionne wrote:
> The documentation of this option should be way more beefy. Something like:
> 
> ```
> Enable unstable and experimental language and library features.
> 
> This option enables various language and library features that are either experimental (also known as TSes), or have been standardized but are not stable yet. This option should not be used in production code, since neither ABI nor API stability are guaranteed.
> ```
> 
> We should also provide documentation inside `clang/docs/ClangCommandLineReference.rst`.
+1


================
Comment at: clang/lib/Driver/ToolChains/Clang.cpp:5770
+    if (!Args.hasArg(options::OPT_fno_coroutines_ts))
+      CmdArgs.push_back("-fcoroutines-ts");
+    CmdArgs.push_back("-fmodules-ts");
----------------
Is this option still useful? In LLVM 14 the `<coroutine>` header is no longer experimental. The experimental header will soon be removed.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D120160



More information about the cfe-commits mailing list