Skip to content

Assertion failure in ThreadSafetyReporter::handleNoMutexHeld "Only works for variables" #140330

@alexfh

Description

@alexfh

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

Metadata

Metadata

Assignees

Labels

clang:frontendLanguage frontend issues, e.g. anything involving "Sema"confirmedVerified by a second partycrash-on-valid

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions