================
@@ -71,3 +71,15 @@ Options
Comma separated list containing type names which are not counted as thrown
exceptions in the check. Default value is an empty string.
+
+.. option:: KnownUnannotatedAsThrowing
+
+ When `true`, treat calls to functions with visible definitions that are not
+ explicitly declared as non-throwing (i.e. lack ``noexcept`` or ``throw()``)
+ as potentially throwing, even if their bodies are visible and no explicit
+ throw is found. Default value is `false`.
+
+.. option:: UnknownAsThrowing
+
+ When `true`, treat calls to functions without visible definitions as
+ potentially throwing. Default value is `false`.
----------------
vbvictor wrote:
> Sorry for the late reply.
>
> Regarding the future path: IMHO the `All` option can still have a place in
> this check. Its primary goal here is strict safety. Even if we add a
> modernize check later, `All` here would remain valid as the ``strict'' mode
> for this check.
>
> So, I don't foresee a need to change the behavior of this opt-in later. The
> future modernize check would simply offer an alternative for users and I
> think they can coexist.
>
> Would you like to share your POV on this? CC @vbvictor
Sorry for the late reply. I think the current 3-way option is good and
functional enough.
> I wonder if there needs to be a differentiation between "unknown" functions
> from system headers and non-system ones.
Maybe we don't need it for now. Imagine what can they do if they encountered
unknown from a non-system.
They would want to consider non-system as "safe", so they can just mark it
`noexcept` because it's in their non-system codebase.
https://github.com/llvm/llvm-project/pull/168324
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits