Accept `all` as an alias for all known features in `rs_bindings_from_cc`.
PiperOrigin-RevId: 656547317
Change-Id: I273e291e7f268d09a254094c04fb49c7307763cc
diff --git a/bazel/llvm.bzl b/bazel/llvm.bzl
index cb1434e..898d768 100644
--- a/bazel/llvm.bzl
+++ b/bazel/llvm.bzl
@@ -53,7 +53,7 @@
executable = False,
)
-LLVM_COMMIT_SHA = "58fb51492d9669525662fa269295d85537968569"
+LLVM_COMMIT_SHA = "51d4980a133db12888207698e39c469cb7055cac"
def llvm_loader_repository_dependencies():
# This *declares* the dependency, but it won't actually be *downloaded* unless it's used.
diff --git a/features/README.md b/features/README.md
index bfe4931..87e2790 100644
--- a/features/README.md
+++ b/features/README.md
@@ -46,9 +46,9 @@
`--//rs_bindings_from_cc/bazel_support:globally_enabled_features`
accepts a comma-separated list of unstable internal feature names (like
-`supported`, `non_extern_c_functions`, or `experimental`) and overrides the
-baseline feature set for all targets for the duration of the build. The flag's
-default value is the empty list.
+`supported`, `non_extern_c_functions`, `experimental`, or the special alias
+`all`) and overrides the baseline feature set for all targets for the duration
+of the build. The flag's default value is the empty list.
## Features
diff --git a/rs_bindings_from_cc/ir.rs b/rs_bindings_from_cc/ir.rs
index 684dfa8..b69977b 100644
--- a/rs_bindings_from_cc/ir.rs
+++ b/rs_bindings_from_cc/ir.rs
@@ -1200,9 +1200,10 @@
let mut features = flagset::FlagSet::<CrubitFeature>::default();
for feature in <Vec<String> as serde::Deserialize<'de>>::deserialize(deserializer)? {
features |= match &*feature {
- "supported" => CrubitFeature::Supported,
- "non_extern_c_functions" => CrubitFeature::NonExternCFunctions,
- "experimental" => CrubitFeature::Experimental,
+ "all" => flagset::FlagSet::<CrubitFeature>::full(),
+ "supported" => CrubitFeature::Supported.into(),
+ "non_extern_c_functions" => CrubitFeature::NonExternCFunctions.into(),
+ "experimental" => CrubitFeature::Experimental.into(),
other => {
return Err(<D::Error as serde::de::Error>::custom(format!(
"Unexpected Crubit feature: {other}"