[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