================ @@ -1983,11 +1983,21 @@ class ThreadSafetyReporter : public clang::threadSafety::ThreadSafetyHandler { void handleNoMutexHeld(const NamedDecl *D, ProtectedOperationKind POK, AccessKind AK, SourceLocation Loc) override { - assert((POK == POK_VarAccess || POK == POK_VarDereference) && - "Only works for variables"); - unsigned DiagID = POK == POK_VarAccess? - diag::warn_variable_requires_any_lock: - diag::warn_var_deref_requires_any_lock; + unsigned DiagID = 0; + switch (POK) { + case POK_VarAccess: + DiagID = diag::warn_variable_requires_any_lock; + break; + case POK_VarDereference: + DiagID = diag::warn_var_deref_requires_any_lock; + break; + case POK_AddressOf: + DiagID = diag::warn_addressof_requires_any_lock; + break; + default: + assert(false && "Only works for variables"); + break; ---------------- aaronpuchert wrote:
Wouldn't `llvm_unreachable` be the standard idiom here? https://github.com/llvm/llvm-project/pull/123063 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits