externvoidabort(void);/* Since GCC 5 folds symbol address comparison, assuming each symbol has different address, &foo == &bar is always false for GCC 5. Use check_ptr_eq to check if two functions are the same. */voidcheck_ptr_eq(void(*f1) (void),void(*f2) (void)){if(f1 != f2)abort();}