[clang] [Driver][BoundsSafety] Add -fbounds-safety-experimental flag (PR #70480)

Yeoul Na via cfe-commits cfe-commits at lists.llvm.org
Tue Oct 31 13:49:44 PDT 2023


================
@@ -3618,6 +3618,30 @@ void CompilerInvocationBase::GenerateLangArgs(const LangOptions &Opts,
     GenerateArg(Consumer, OPT_frandomize_layout_seed_EQ, Opts.RandstructSeed);
 }
 
+static void CheckBoundsSafetyLang(InputKind IK, DiagnosticsEngine &Diags) {
+  // Currently, bounds safety is only supported for C. However, it's also
+  // possible to pass assembly files and LLVM IR through Clang, and
+  // those should be trivially supported. This is especially important because
+  // some build systems, like xcbuild and somewhat clumsy Makefiles, will pass
+  // C_FLAGS to Clang while building assembly files.
+  switch (IK.getLanguage()) {
+  case Language::Asm:
+    Diags.Report(diag::warn_bounds_safety_asm_ignored);
+    break;
----------------
rapidsna wrote:

Right, this is something we could potentially allow in future if we see actual use cases.

Until we support this, `__has_feature(bounds_safety)` or such will return `false` and we should have the compiler report the warning that `-fbounds-safety` is ignored for assemblers. 

https://github.com/llvm/llvm-project/pull/70480


More information about the cfe-commits mailing list