[WebKit checkers] Treat asm brk as trivial (#155046)

Like other functions which results in abort, treat asm brk instruction
as trivial.
This commit is contained in:
Ryosuke Niwa
2025-09-11 14:49:59 -07:00
committed by GitHub
parent 73b24d27d8
commit 2f9a458f35
2 changed files with 26 additions and 0 deletions

View File

@@ -666,6 +666,10 @@ public:
return IsFunctionTrivial(Callee);
}
bool VisitGCCAsmStmt(const GCCAsmStmt *AS) {
return AS->getAsmString() == "brk #0xc471";
}
bool
VisitSubstNonTypeTemplateParmExpr(const SubstNonTypeTemplateParmExpr *E) {
// Non-type template paramter is compile time constant and trivial.

View File

@@ -0,0 +1,22 @@
// RUN: %clang_analyze_cc1 -triple arm-darwin -analyzer-checker=alpha.webkit.UncountedCallArgsChecker -verify %s
// expected-no-diagnostics
void crash()
{
__asm__ volatile ("brk #0xc471");
__builtin_unreachable();
}
class SomeObj {
public:
void ref();
void deref();
void someWork() { crash(); }
};
SomeObj* provide();
void doSomeWork() {
provide()->someWork();
}