Skip to content

Commit 5f3e5df

Browse files
committed
[clang][NFC] Convert Sema::BuiltinCountedByRefKind to scoped enum
1 parent 16f01b3 commit 5f3e5df

File tree

5 files changed

+26
-21
lines changed

5 files changed

+26
-21
lines changed

clang/include/clang/Sema/Sema.h

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -519,6 +519,15 @@ enum class VariadicCallType {
519519
DoesNotApply
520520
};
521521

522+
enum class BuiltinCountedByRefKind {
523+
Assignment,
524+
Initializer,
525+
FunctionArg,
526+
ReturnArg,
527+
ArraySubscript,
528+
BinaryExpr,
529+
};
530+
522531
/// Sema - This implements semantic analysis and AST building for C.
523532
/// \nosubgrouping
524533
class Sema final : public SemaBase {
@@ -2636,15 +2645,6 @@ class Sema final : public SemaBase {
26362645

26372646
bool BuiltinNonDeterministicValue(CallExpr *TheCall);
26382647

2639-
enum BuiltinCountedByRefKind {
2640-
AssignmentKind,
2641-
InitializerKind,
2642-
FunctionArgKind,
2643-
ReturnArgKind,
2644-
ArraySubscriptKind,
2645-
BinaryExprKind,
2646-
};
2647-
26482648
bool CheckInvalidBuiltinCountedByRef(const Expr *E,
26492649
BuiltinCountedByRefKind K);
26502650
bool BuiltinCountedByRef(CallExpr *TheCall);

clang/lib/Sema/SemaChecking.cpp

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5809,27 +5809,27 @@ bool Sema::CheckInvalidBuiltinCountedByRef(const Expr *E,
58095809
return false;
58105810

58115811
switch (K) {
5812-
case AssignmentKind:
5813-
case InitializerKind:
5812+
case BuiltinCountedByRefKind::Assignment:
5813+
case BuiltinCountedByRefKind::Initializer:
58145814
Diag(E->getExprLoc(),
58155815
diag::err_builtin_counted_by_ref_cannot_leak_reference)
58165816
<< 0 << E->getSourceRange();
58175817
break;
5818-
case FunctionArgKind:
5818+
case BuiltinCountedByRefKind::FunctionArg:
58195819
Diag(E->getExprLoc(),
58205820
diag::err_builtin_counted_by_ref_cannot_leak_reference)
58215821
<< 1 << E->getSourceRange();
58225822
break;
5823-
case ReturnArgKind:
5823+
case BuiltinCountedByRefKind::ReturnArg:
58245824
Diag(E->getExprLoc(),
58255825
diag::err_builtin_counted_by_ref_cannot_leak_reference)
58265826
<< 2 << E->getSourceRange();
58275827
break;
5828-
case ArraySubscriptKind:
5828+
case BuiltinCountedByRefKind::ArraySubscript:
58295829
Diag(E->getExprLoc(), diag::err_builtin_counted_by_ref_invalid_use)
58305830
<< 0 << E->getSourceRange();
58315831
break;
5832-
case BinaryExprKind:
5832+
case BuiltinCountedByRefKind::BinaryExpr:
58335833
Diag(E->getExprLoc(), diag::err_builtin_counted_by_ref_invalid_use)
58345834
<< 1 << E->getSourceRange();
58355835
break;

clang/lib/Sema/SemaDecl.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14904,7 +14904,8 @@ void Sema::FinalizeDeclaration(Decl *ThisDecl) {
1490414904
}
1490514905
}
1490614906

14907-
CheckInvalidBuiltinCountedByRef(VD->getInit(), InitializerKind);
14907+
CheckInvalidBuiltinCountedByRef(VD->getInit(),
14908+
BuiltinCountedByRefKind::Initializer);
1490814909

1490914910
checkAttributesAfterMerging(*this, *VD);
1491014911

clang/lib/Sema/SemaExpr.cpp

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4963,7 +4963,8 @@ ExprResult Sema::ActOnArraySubscriptExpr(Scope *S, Expr *base,
49634963
return ExprError();
49644964
}
49654965

4966-
CheckInvalidBuiltinCountedByRef(base, ArraySubscriptKind);
4966+
CheckInvalidBuiltinCountedByRef(base,
4967+
BuiltinCountedByRefKind::ArraySubscript);
49674968

49684969
// Handle any non-overload placeholder types in the base and index
49694970
// expressions. We can't handle overloads here because the other
@@ -6554,7 +6555,8 @@ ExprResult Sema::BuildCallExpr(Scope *Scope, Expr *Fn, SourceLocation LParenLoc,
65546555
// The result of __builtin_counted_by_ref cannot be used as a function
65556556
// argument. It allows leaking and modification of bounds safety information.
65566557
for (const Expr *Arg : ArgExprs)
6557-
if (CheckInvalidBuiltinCountedByRef(Arg, FunctionArgKind))
6558+
if (CheckInvalidBuiltinCountedByRef(Arg,
6559+
BuiltinCountedByRefKind::FunctionArg))
65586560
return ExprError();
65596561

65606562
if (getLangOpts().CPlusPlus) {
@@ -15430,8 +15432,9 @@ ExprResult Sema::ActOnBinOp(Scope *S, SourceLocation TokLoc,
1543015432
// Emit warnings for tricky precedence issues, e.g. "bitfield & 0x4 == 0"
1543115433
DiagnoseBinOpPrecedence(*this, Opc, TokLoc, LHSExpr, RHSExpr);
1543215434

15433-
BuiltinCountedByRefKind K =
15434-
BinaryOperator::isAssignmentOp(Opc) ? AssignmentKind : BinaryExprKind;
15435+
BuiltinCountedByRefKind K = BinaryOperator::isAssignmentOp(Opc)
15436+
? BuiltinCountedByRefKind::Assignment
15437+
: BuiltinCountedByRefKind::BinaryExpr;
1543515438

1543615439
CheckInvalidBuiltinCountedByRef(LHSExpr, K);
1543715440
CheckInvalidBuiltinCountedByRef(RHSExpr, K);

clang/lib/Sema/SemaStmt.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3858,7 +3858,8 @@ Sema::ActOnReturnStmt(SourceLocation ReturnLoc, Expr *RetValExp,
38583858
<< FSI->getFirstCoroutineStmtKeyword();
38593859
}
38603860

3861-
CheckInvalidBuiltinCountedByRef(RetVal.get(), ReturnArgKind);
3861+
CheckInvalidBuiltinCountedByRef(RetVal.get(),
3862+
BuiltinCountedByRefKind::ReturnArg);
38623863

38633864
StmtResult R =
38643865
BuildReturnStmt(ReturnLoc, RetVal.get(), /*AllowRecovery=*/true);

0 commit comments

Comments
 (0)