<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/140330>140330</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
Assertion failure in ThreadSafetyReporter::handleNoMutexHeld "Only works for variables"
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
alexfh
</td>
</tr>
</table>
<pre>
https://gcc.godbolt.org/z/W6MTKqsvz
```
$ cat test.c
struct {
int v __attribute__((guarded_var));
} p;
int *g() {
return &p.v;
}
$ ./clang-bad -Wthread-safety-analysis test.c
assertion failed at clang/lib/Sema/AnalysisBasedWarnings.cpp:1948 in virtual void clang::threadSafety::(anonymous namespace)::ThreadSafetyReporter::handleNoMutexHeld(const NamedDecl *, ProtectedOperationKind, AccessKind, SourceLocation): (POK == POK_VarAccess || POK == POK_VarDereference) && "Only works for variables"
@ 0x55c4b4397ec4 __assert_fail
@ 0x55c4af71b522 clang::threadSafety::(anonymous namespace)::ThreadSafetyReporter::handleNoMutexHeld()
@ 0x55c4b00ede2c (anonymous namespace)::ThreadSafetyAnalyzer::checkAccess()
@ 0x55c4b00debaf (anonymous namespace)::ThreadSafetyAnalyzer::runAnalysis()
@ 0x55c4b00daca4 clang::threadSafety::runThreadSafetyAnalysis()
@ 0x55c4af711fa2 clang::sema::AnalysisBasedWarnings::IssueWarnings()
@ 0x55c4af705eda clang::Sema::PopFunctionScopeInfo()
@ 0x55c4af8b63be clang::Sema::ActOnFinishFunctionBody()
@ 0x55c4af4beed4 clang::Parser::ParseFunctionStatementBody()
@ 0x55c4af41109c clang::Parser::ParseFunctionDefinition()
@ 0x55c4af479264 clang::Parser::ParseDeclGroup()
@ 0x55c4af410066 clang::Parser::ParseDeclOrFunctionDefInternal()
@ 0x55c4af40f85d clang::Parser::ParseDeclarationOrFunctionDefinition()
@ 0x55c4af40e6f9 clang::Parser::ParseExternalDeclaration()
@ 0x55c4af40cd74 clang::Parser::ParseTopLevelDecl()
@ 0x55c4af4089be clang::ParseAST()
@ 0x55c4af153a8a clang::FrontendAction::Execute()
@ 0x55c4af0cd98d clang::CompilerInstance::ExecuteAction()
@ 0x55c4ae51a7ab clang::ExecuteCompilerInvocation()
@ 0x55c4ae50e8a0 cc1_main()
@ 0x55c4ae50bc24 ExecuteCC1Tool()
@ 0x55c4ae50b180 clang_main()
@ 0x55c4ae509674 main
@ 0x7fa386b923d4 __libc_start_main
@ 0x55c4ae5095aa _start
```
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJy8lt1u2zYUx5-GviFiUNT3hS-UuN6CtE2wBOulcUQe2VxlUiMpN-nTD5TsxG5SZcWABQIii-f_O18UdcA5tdGIC5JeknQ5g95vjV1Ai4_NdlYb-bTYet85EleErwhfbYSYb4ysTevnxm4IX30nfPUl-_Rw87fbfyesIhk7XKwiPKECPPXo_FwQVjlve-EpyS8JqyhV2tM9Xa_Be6vq3uN6TXhBeLHpwUqU6z1YwstwxUFB8iXtDresCmrCq80gKY9Qi763mhKedfP9s-wQzJzwlWhBby5qkPTii99aBHnhoEH_dAEa2ien3Eu84Bxar4ymDagWJQVPBz3hq1bVhK_ucQeEr6qD9BIcyi9gtdIbNxddR-IqKpOCKk33yvoeWro3Sh4ocUXiagzifohhfEJ4Adrop53pHdWwQ9eBwKEMYfnhRPAHdsZ6tOPKFrRs8bP51Ht8_B1bSXghjHaefoYdyiWKNpSM8Ct6Z41H4VHedmgh5HijtAwrlRDo3PHXvemtwI9GDDZjDJTw4u72hpJ4SeIlvbu9Wf8JdtRRkl-R_Iq-Xl-ixQYt6iGV0CHCM0o4v9XtE_1m7FdHG2PpHqyCukVHOB-2CaUkYZQ9pqlI6iQucxQJDdtm6M46tObELvyNttDkUZ1y_j8WO8hehcwYSuSC0l9wNWyo70dXYovi61jfFyfnydaMSayh-Q9ebK-P-_hVKueOQEAyXVXb61eOprmhW1EDZ91y4e0a7t58wcala-d6fH406YClKOHUwf2zgzvTrXotwia_F6bDa92YSVhRZ3GNb8Mq4W_1SmnltkfopZFPk7ykRpRnVb0D6469Ge6fA_TgcYfavw-NIlaKfwVdYqO0Gl_yKWJe8mw6zHDM_GZN370TGmNZ9i7o1p4EeK09Wg3tNJg1RSrfBcN46p3xf1aAFzRmTUkn2R8exxhPfEzwhMyTad6D6T7iHgfeO3kX5fmGHPTV_cOkLEpjKM5eipU12qOW1VCW8dmHRxS9x0kSE7Iszgp_ZXadatFea-chnPunrAN-gohpBDnUp8SD9gW8f_4yTXEYFsAoFSJa70Dpnx2iwbIWPKH06OcqejBmsu5BEhVsDPIH-pvWZRZaPhj-aJI3EBdZXfJYJnS9blUt1s6D9es3zZ-JKQClo-XpCDaTi1iWcQkzXER5kidJFkX5bLsAVmeYszrLMcqjGKK6zJKEM94wrCPezNSCM56yNMpZlERpPm-KWtQs5zwqS95wJAnDHah23rb7XRgFZyocw4soYXHMZi3U2LphrORc4zc6rIYPerqc2UUQXdT9xpGEtcp594Lxyre4qM4Gr95iGKB-4VP8zlgx623742Sr_Lav58LswmzX7o__Ljpr_kLhCV8NOTjCV4ck9wv-TwAAAP__3t5gTg">