[PATCH] D141192: [Clang] Add warnings on bad shifts inside enums.

2023-01-08 Thread Dmitriy Chestnykh via Phabricator via cfe-commits
chestnykh updated this revision to Diff 487168. chestnykh edited the summary of this revision. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D141192/new/ https://reviews.llvm.org/D141192 Files: clang/lib/AST/ExprConstant.cpp clang/lib/Sema/SemaExpr.cpp clang/test/AST/Interp/shifts.c

[PATCH] D141192: [Clang] Add warnings on bad shifts inside enums.

2023-01-07 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder added a comment. In D141192#4033591 , @shafik wrote: > So it looks like in `handleIntIntBinOp` we do hit this code: > > unsigned SA = (unsigned) RHS.getLimitedValue(LHS.getBitWidth()-1); >if (SA != RHS) { > Info.CCEDiag(E, diag::note_co

[PATCH] D141192: [Clang] Add warnings on bad shifts inside enums.

2023-01-07 Thread Dmitriy Chestnykh via Phabricator via cfe-commits
chestnykh added a comment. In D141192#4033591 , @shafik wrote: > So it looks like in `handleIntIntBinOp` we do hit this code: > > unsigned SA = (unsigned) RHS.getLimitedValue(LHS.getBitWidth()-1); >if (SA != RHS) { > Info.CCEDiag(E, diag::note_

[PATCH] D141192: [Clang] Add warnings on bad shifts inside enums.

2023-01-07 Thread Shafik Yaghmour via Phabricator via cfe-commits
shafik added a comment. So it looks like in `handleIntIntBinOp` we do hit this code: unsigned SA = (unsigned) RHS.getLimitedValue(LHS.getBitWidth()-1); if (SA != RHS) { Info.CCEDiag(E, diag::note_constexpr_large_shift) << RHS << E->getType() << LHS.getBitWidth(); So maybe we sho

[PATCH] D141192: [Clang] Add warnings on bad shifts inside enums.

2023-01-07 Thread Dmitriy Chestnykh via Phabricator via cfe-commits
chestnykh created this revision. chestnykh added a reviewer: MaskRay. Herald added a subscriber: StephenFan. Herald added a project: All. chestnykh requested review of this revision. Herald added a project: clang. Herald added a subscriber: cfe-commits. Those warnings were gone because DiagRuntime