Added some more warnings by default, and test for some more builtins. The __builtin_expect is now tested for together with the other builtins, which makes it available when compiling with clang. This helps the index_shared_string function be significantly faster when indexing narrow shared strings (which is assumed to be most common). Of course, if you generally speaking index more wide strings than shared strings it's slower. Then again, it you have "medium" wide strings (2 bytes per character) the performance is identical (both gcc and clang had the tests in 2,1,0 order).