The issue is per the C++ spec, whether "char" is signed or unsigned is compiler+architecture dependent. On Ubuntu 22.04 with gcc 11 and Arm it is unsigned so assigning -1 to it doesn't compile. I am definitely not a compiler guru, but am shaking my head that the spec would specify it this way.
enum class Check_database_decision : char {
EMPTY_EVENT_DATABASE = 2,
CHANGED = 1,
OK = 0,
ERROR = -1
};
The problem is in client/mysqlbinlog.cc https://github.com/facebook/mysql-5.6/blob/25bb952c18387bdcb13716589f6da16345004996/client/mysqlbinlog.cc#L799
The issue is per the C++ spec, whether "char" is signed or unsigned is compiler+architecture dependent. On Ubuntu 22.04 with gcc 11 and Arm it is unsigned so assigning -1 to it doesn't compile. I am definitely not a compiler guru, but am shaking my head that the spec would specify it this way.