https://gcc.gnu.org/bugzilla/show_bug.cgi?id=22238

--- Comment #20 from Manuel López-Ibáñez <manu at gcc dot gnu.org> ---
(In reply to David Malcolm from comment #19)
> Is it time to close this one out as fixed?

with gcc HEAD 6.0.0 20160127 and the testcase in comment #12, I get:

prog.cc: In member function 'void B::bar()':
prog.cc:8:25: error: could not convert '(((A*)this) + ((sizetype)(*(long
int*)(((B*)this)->B::_vptr.B + 18446744073709551592u))))->A::foo()' from 'void'
to 'bool'
     void bar() { if (foo()) ; }
                      ~~~^~

Clang:

prog.cc:8:22: error: value of type 'void' is not contextually convertible to
'bool'
    void bar() { if (foo()) ; }
                     ^~~~~

I maintain my opinion that any user-facing diagnostic using %qE is potentially
broken.

Reply via email to