the int8 type in JUCE is defined as
typedef char int8;
somehow I got the same definition in another file, but it was
typedef unsigned char int8;
To fix the problem I had to patch JUCE, as I feel that my version is safer (it might be that “char” can be unsigned by default).
Actually to prevent such problems (of overdefining), I’ve put a little scheme which goes like this:
typedef unsigned char int8;
If that was done also on the JUCE side, then the re-definition would be skipped. (Although that’s not really safe solution, as it depends on how the include files are included, and would stop the compiler from reporting the bug as seen, instead once treating int8 as char, and the other time as unsigned char).
Also it’s really C++ issue, as there is mangling difference between signed char and just char.