Charusso added inline comments.
================ Comment at: clang-tidy/bugprone/NotNullTerminatedResultCheck.cpp:1038 + + SmallString<128> NewAddNullTermExprStr; + NewAddNullTermExprStr = "\n"; ---------------- aaron.ballman wrote: > JonasToth wrote: > > whisperity wrote: > > > aaron.ballman wrote: > > > > This should be done using a `Twine`. > > > Can you please give an example of how to well-approach this? We had > > > issues with using Twines on the stack and then later on running into > > > weird undefined behaviour. The documentation is not clear to a lot of our > > > colleagues on where the `Twine`'s usage barriers are... (Asking this not > > > just for @Charusso but also for a few more colleagues, > > > @baloghadamsoftware e.g.) > > naive approach: > > > > ``` > > std::string New = > > Twine("\n").concat(SpaceBeforeStmtStr).concat(exprToStr(..))...).str(); > > ``` > > I think retrieving a `SmallString` is not supported. Please note, that > > `Twine` does support taking integer and floats directly without prior > > conversion. > > You can use `operator+` instead of `concat` too. > > > > Did this help or did you have more specific issues? > The important bit is -- don't try to store a Twine (locally or otherwise). > It's fine as a parameter in a function, but otherwise you should try to use > it only as part of an expression. e.g., `(Twine("foo") + "bar" + baz).str()` > is a good pattern to get used to. +1 for @aaron.ballman's example, it is an unspoken standard. https://reviews.llvm.org/D45050 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits