There is no warning about prototype conflict.
void f(char *a);
void f(__code int *a);
c:\firmware_rtd2660\bug4>sdcc -v
SDCC : mcs51/z80/z180/r2k/r2ka/r3ka/sm83/tlcs90/ez80_z80/z80n/r800/ds390/pic16/pic14/TININative/ds400/hc08/s08/stm8/pdk13/pdk14/pdk15/mos6502/mos65c02/f8 TD- 4.5.1 #15257 (MINGW64)
published under GNU General Public License (GPL)
c:\firmware_rtd2660\bug4>sdcc -mmcs51 --opt-code-size --fverbose-asm -c -o main.rel main.c
main.c:6: error 78: incompatible types
from type 'char near* fixed'
to type 'int __code* fixed'
There were quite some issues in the type system then. Fortunately, I discovered and fixed many of them recently when working on [feature-requests:#1001], [feature-requests:#1002], [feature-requests:#1003]. Including this one. It is fixed in current svn trunk and snapshots.
Related
Feature Requests:
#1001Feature Requests:
#1002Feature Requests:
#1003