[PATCH] D30923: Warn on enum assignment to bitfields that can't fit all values
Hal Finkel via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Tue Mar 14 11:00:33 PDT 2017
hfinkel added a comment.
In https://reviews.llvm.org/D30923#700780, @rnk wrote:
> In https://reviews.llvm.org/D30923#700708, @hfinkel wrote:
> > In https://reviews.llvm.org/D30923#700696, @rnk wrote:
> > > Do you think it's worth indicating that the error can be suppressed with an explicit cast, or is that wasted space?
> > What might this look like? Also, I don't see a regression test for this.
> The warning only looks through implicit casts and paren exprs, so it could look like this: `f.two_bits = (unsigned)three_bits;` I added a test for it.
Comment at: lib/Sema/SemaChecking.cpp:8765
+ TypeSourceInfo *TSI = Bitfield->getTypeSourceInfo();
+ SourceRange TypeRange = TSI ? TSI->getTypeLoc().getSourceRange() : SourceRange();
+ S.Diag(Bitfield->getTypeSpecStartLoc(), diag::note_change_bitfield_sign)
Line is too long.
More information about the cfe-commits