Something changed with gcc's idea of the declaration of __builtin_expect to expect the first
argument to be a 'long int'. assert() uses __builtin_expect() for an optimization. All C++
programs using assert(apointer) now fail to compile. To reproduce:
#include <assert.h>
int main(int argc, char **argv)
{
assert(argv);
return 0;
}
And compile as C++.