Mark Mitchell writes:
> What do people think?  Do we have the leeway to change this?

If it were just cases where using __builtin_expect is pointless that
would break, like function overloading and sizeof then I don't think
it would be a problem.  However, it would change behaviour when C++
conversion operators are used and I can see these being legitimately
used with __builtin_expect.  Something like:

        struct C {
                operator long();
        };

        int foo() {
                if (__builtin_expect(C(), 0))
                        return 1;
                return 2;
        }

If cases like these are rare enough it's probably an acceptable change
if they give an error because the argument types don't match.

                                        Ross Ridge

Reply via email to