[PATCH] D54943: [clang-tidy] implement const-transformation for cppcoreguidelines-const-correctness

Jonas Toth via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Sat Jan 4 07:31:45 PST 2020


JonasToth marked 2 inline comments as done.
JonasToth added inline comments.


================
Comment at: clang-tools-extra/test/clang-tidy/checkers/cppcoreguidelines-const-correctness-values.cpp:608
+}
+
+template <typename L, typename R>
----------------
JonasToth wrote:
> 0x8000-0000 wrote:
> > Please insert the this test code here:
> > 
> > ```
> > struct IntWrapper {
> > 
> >    unsigned low;
> >    unsigned high;
> > 
> >    IntWrapper& operator=(unsigned value) {
> >       low = value & 0xffff;
> >       high = (value >> 16) & 0xffff;
> >    }
> > 
> >    template<typename Istream>
> >    friend Istream& operator>>(Istream& is, IntWrapper& rhs) {
> >       unsigned someValue = 0;       // false positive now
> >       if (is >> someValue) {
> >          rhs = someValue;
> >       }
> >       return is;
> >    }
> > };
> > 
> > unsigned TestHiddenFriend(IntMaker& im) {
> >    IntWrapper iw;
> > 
> >    im >> iw;
> > 
> >    return iw.low;
> > }
> > ```
> clang gives me no error when I add the const there. sure it does reproduce properly?
Here for reference: https://godbolt.org/z/DXKMYh


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D54943/new/

https://reviews.llvm.org/D54943





More information about the cfe-commits mailing list