================
@@ -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

Reply via email to