[clang] Fix some static initialization race-conditions (PR #181367)
Javier Lopez-Gomez via cfe-commits
cfe-commits at lists.llvm.org
Fri Feb 13 07:28:02 PST 2026
================
@@ -113,19 +106,25 @@ void Stmt::PrintStats() {
unsigned sum = 0;
llvm::errs() << "\n*** Stmt/Expr Stats:\n";
for (int i = 0; i != Stmt::lastStmtConstant+1; i++) {
- if (StmtClassInfo[i].Name == nullptr) continue;
- sum += StmtClassInfo[i].Counter;
+ StmtClassNameTable &entry =
+ getStmtInfoTableEntry(static_cast<Stmt::StmtClass>(i));
+ if (entry.Name == nullptr)
+ continue;
+ sum += entry.Counter;
}
llvm::errs() << " " << sum << " stmts/exprs total.\n";
sum = 0;
for (int i = 0; i != Stmt::lastStmtConstant+1; i++) {
- if (StmtClassInfo[i].Name == nullptr) continue;
- if (StmtClassInfo[i].Counter == 0) continue;
- llvm::errs() << " " << StmtClassInfo[i].Counter << " "
- << StmtClassInfo[i].Name << ", " << StmtClassInfo[i].Size
- << " each (" << StmtClassInfo[i].Counter*StmtClassInfo[i].Size
+ StmtClassNameTable &entry =
----------------
jalopezg-git wrote:
```suggestion
const StmtClassNameTable &entry =
```
https://github.com/llvm/llvm-project/pull/181367
More information about the cfe-commits
mailing list