Move specific define for swap_and_compare gcc(and many other) macro...
change to a test for known exception cases instead of default for unknown cases.