__builtin_expect for indirect function calls
Ross Ridge
rridge@csclub.uwaterloo.ca
Sun Jan 6 20:42:00 GMT 2008
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
More information about the Gcc
mailing list