[clang-tools-extra] r314808 - [clang-tidy] Fix bug 34747, streaming operators and hicpp-signed-bitwise

Jonas Toth via cfe-commits cfe-commits at lists.llvm.org
Tue Oct 3 10:54:43 PDT 2017


Hi Juergen,

i did already work on fixing the issue I introduced with the commits. I
am currently waiting for the buildbot to catch up with the committed fix.

As far as i can see, the newer commits did actually fix (at least
chapunis buildbot did go green again), but i have my eye on it.

Cheers, Jonas


Am 03.10.2017 um 19:53 schrieb Juergen Ributzka:
> Hi Jonas,
>
> this new test is failing on Green Dragon:
> http://lab.llvm.org:8080/green/job/clang-stage1-configure-RA/39223/consoleFull#11207350448254eaf0-7326-4999-85b0-388101f2d404
>
> Could you please take a look?
>
> Thanks
>
> Cheers,
> Juergen
>
> On Tue, Oct 3, 2017 at 9:25 AM, Jonas Toth via cfe-commits
> <cfe-commits at lists.llvm.org <mailto:cfe-commits at lists.llvm.org>> wrote:
>
>     Author: jonastoth
>     Date: Tue Oct  3 09:25:01 2017
>     New Revision: 314808
>
>     URL: http://llvm.org/viewvc/llvm-project?rev=314808&view=rev
>     <http://llvm.org/viewvc/llvm-project?rev=314808&view=rev>
>     Log:
>     [clang-tidy] Fix bug 34747, streaming operators and
>     hicpp-signed-bitwise
>
>     The bug happened with stream operations, that were not recognized
>     in all cases.
>     Even there were already existing test for streaming classes, they
>     did not catch this bug.
>     Adding the isolated example to the existing tests did not trigger
>     the bug.
>     Therefore i created a new isolated file that did expose the bug
>     indeed.
>
>     Differential: https://reviews.llvm.org/D38399
>     <https://reviews.llvm.org/D38399>
>     reviewed by aaron.ballman
>
>     Added:
>        
>     clang-tools-extra/trunk/test/clang-tidy/hicpp-signed-bitwise-bug34747.cpp
>     Modified:
>         clang-tools-extra/trunk/clang-tidy/hicpp/SignedBitwiseCheck.cpp
>
>     Modified:
>     clang-tools-extra/trunk/clang-tidy/hicpp/SignedBitwiseCheck.cpp
>     URL:
>     http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/clang-tidy/hicpp/SignedBitwiseCheck.cpp?rev=314808&r1=314807&r2=314808&view=diff
>     <http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/clang-tidy/hicpp/SignedBitwiseCheck.cpp?rev=314808&r1=314807&r2=314808&view=diff>
>     ==============================================================================
>     ---
>     clang-tools-extra/trunk/clang-tidy/hicpp/SignedBitwiseCheck.cpp
>     (original)
>     +++
>     clang-tools-extra/trunk/clang-tidy/hicpp/SignedBitwiseCheck.cpp
>     Tue Oct  3 09:25:01 2017
>     @@ -27,7 +27,9 @@ void SignedBitwiseCheck::registerMatcher
>            binaryOperator(allOf(anyOf(hasOperatorName("|"),
>     hasOperatorName("&"),
>                                       hasOperatorName("^"),
>     hasOperatorName("<<"),
>                                       hasOperatorName(">>")),
>     -                           hasEitherOperand(SignedIntegerOperand)))
>     +                           hasEitherOperand(SignedIntegerOperand),
>     +                           hasLHS(hasType(isInteger())),
>     +                           hasRHS(hasType(isInteger()))))
>                .bind("binary_signed"),
>            this);
>
>
>     Added:
>     clang-tools-extra/trunk/test/clang-tidy/hicpp-signed-bitwise-bug34747.cpp
>     URL:
>     http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/test/clang-tidy/hicpp-signed-bitwise-bug34747.cpp?rev=314808&view=auto
>     <http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/test/clang-tidy/hicpp-signed-bitwise-bug34747.cpp?rev=314808&view=auto>
>     ==============================================================================
>     ---
>     clang-tools-extra/trunk/test/clang-tidy/hicpp-signed-bitwise-bug34747.cpp
>     (added)
>     +++
>     clang-tools-extra/trunk/test/clang-tidy/hicpp-signed-bitwise-bug34747.cpp
>     Tue Oct  3 09:25:01 2017
>     @@ -0,0 +1,21 @@
>     +// RUN: %check_clang_tidy %s hicpp-signed-bitwise %t -- --
>     -std=c++11 | count 0
>     +
>     +// Note: this test expects no diagnostics, but FileCheck cannot
>     handle that,
>     +// hence the use of | count 0.
>     +
>     +template <typename C>
>     +struct OutputStream {
>     +  OutputStream &operator<<(C);
>     +};
>     +
>     +template <typename C>
>     +struct foo {
>     +  typedef OutputStream<C> stream_type;
>     +  foo(stream_type &o) {
>     +    o << 'x'; // warning occured here, fixed now
>     +  }
>     +};
>     +
>     +void bar(OutputStream<signed char> &o) {
>     +  foo<signed char> f(o);
>     +}
>
>
>     _______________________________________________
>     cfe-commits mailing list
>     cfe-commits at lists.llvm.org <mailto:cfe-commits at lists.llvm.org>
>     http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
>     <http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits>
>
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20171003/20373749/attachment-0001.html>


More information about the cfe-commits mailing list