I can not understand this and suspect this to be a bug (after consulting with several more programmers). Below is the description. I have some *.h file which contains the following: enum PinDir {DIR0=0, DIR1=1, IN=0, OUT=1}; enum PinPar {PAR0=0, PAR1=1, GPIO=0, PERIPH=1}; enum PinODR {ODR0=0, ODR1=1}; enum PinSO {SO0 =0, SO1 =1}; enum PinINT {INT0=0, INT1=1, SET=1, CLR=0}; enum Ports {PortA, PortB, PortC, PortD}; class __PinsIO { struct __Port{ volatile unsigned long DIR; volatile unsigned long PAR; volatile unsigned long SO; volatile unsigned long ODR; volatile unsigned long DAT; }; __Port *pPortA __attribute__ ((packed)); __Port *pPortB __attribute__ ((packed)); __Port *pPortC __attribute__ ((packed)); __Port *pPortD __attribute__ ((packed)); public: __PinsIO(); void Define(Ports Port, short PinNum, PinDir Dir, PinPar Par, bool Dat); /*CALLED*/ void Define(Ports Port, short PinNum, PinDir Dir, PinPar Par); void Define(Ports Port, short PinNum, PinDir Dir, PinPar Par, PinODR Odr); void Define(Ports Port, short PinNum, PinDir Dir, PinPar Par, PinODR Odr, bool Dat); void Define(Ports Port, short PinNum, PinDir Dir, PinPar Par, PinSO So, PinINT Int); void DefineInt(Ports Port, short PinNum); } PinsIO; In some other cpp file (which, of course, includes the file above) I have written the following: PinsIO.Define(PortC, 24, DIR0, PAR1, SO1); Today, considering this, I expect gcc to issue the error message - no corresponding prototype found. Instead, gcc silently compiles the code and calls the first function in the list marked with /*CALLED*/. I shall be really thankfull for any possible hints and helps. -- View this message in context: http://www.nabble.com/G%2B%2B-bug--tf3558625.html#a9937176 Sent from the gcc - Help mailing list archive at Nabble.com.