Skip to content
  • David Blaikie's avatar
    Use only explicit bool conversion operators · 041f1aa3
    David Blaikie authored
    BitVector/SmallBitVector::reference::operator bool remain implicit since
    they model more exactly a bool, rather than something else that can be
    boolean tested.
    
    The most common (non-buggy) case are where such objects are used as
    return expressions in bool-returning functions or as boolean function
    arguments. In those cases I've used (& added if necessary) a named
    function to provide the equivalent (or sometimes negative, depending on
    convenient wording) test.
    
    One behavior change (YAMLParser) was made, though no test case is
    included as I'm not sure how to reach that code path. Essentially any
    comparison of llvm::yaml::document_iterators would be invalid if neither
    iterator was at the end.
    
    This helped uncover a couple of bugs in Clang - test cases provided for
    those in a separate commit along with similar changes to `operator bool`
    instances in Clang.
    
    llvm-svn: 181868
    041f1aa3
Loading