Index: clang/lib/Sema/SemaExpr.cpp =================================================================== --- clang/lib/Sema/SemaExpr.cpp +++ clang/lib/Sema/SemaExpr.cpp @@ -18936,7 +18936,7 @@ bool UsableInConstantExpr = Var->mightBeUsableInConstantExpressions(SemaRef.Context); - if (Var->isLocalVarDeclOrParm() && !Var->hasExternalStorage()) { + if (Var->isLocalVarDeclOrParm() && Var->hasLocalStorage()) { RefsMinusAssignments.insert({Var, 0}).first->getSecond()++; } Index: clang/test/Sema/warn-unused-but-set-variables.c =================================================================== --- clang/test/Sema/warn-unused-but-set-variables.c +++ clang/test/Sema/warn-unused-but-set-variables.c @@ -73,3 +73,8 @@ __attribute__((__cleanup__(for_cleanup))) int x; x = 5; } + +void f4(void) { + static int c1 = 0; + c1 += 1; +}