@efriedma noted that my D104682 broke this test case, reduced from SPEC2006.
#include <istream> bool a(std::istream a) { return a.getline(0,0) == 0; }
We can unbreak it by restoring the conversion to something-convertible-to-bool. I chose const void* to match libstdc++ (which uses non-const void*). We could of course just choose bool itself, but that would break some existing libc++ tests which assert basic_ios is NOT convertible to int.
I'm not at all sure that we want this patch; it might be better to say that in the year 2021 we no longer support a benchmark from 2006 written in a language from 2003, and those people should just fix their code already. But if we want it, then I think this is what we want. @efriedma, what are your thoughts re: the appropriate libc++ action here?
The ancient standards actually specify operator void*, not operator const void*, but that probably doesn't matter.