WTH Does This Mean?

When doing a compile, I get the following output:

Compiling 'SuperATC' for 'Arduino Due (Programming Port)' Build folder: file:///C:/Users/RayL/AppData/Local/V.Micro/Arduino/Builds/SuperATC/arduino_due_x_dbg Wire.h:In member function 'byte I2CEEPROM::readByte(uint16_t)' Wire.h:requestFrom(int, int) Wire.h:requestFrom(uint8_t, uint8_t) Binary sketch size: 174,612 bytes (used 33% of a 524,288 byte maximum) (14.82 secs)

Oddly, when I turn on verbose mode, and/or warnings, these messages don't appear!

Here is the code that seems to produce the messages:

uint8_t     deviceID;

byte I2CEEPROM::readByte(uint16_t addr) {
    byte rdata = 0xFF;
    Wire.beginTransmission(deviceID);
    Wire.write(addr >> 8);       // MSB
    Wire.write(addr & 0xFF);     // LSB
    Wire.endTransmission();
    Wire.requestFrom(deviceID , 1);
    if (Wire.available()) 
        rdata = Wire.read();
    return rdata;
}

Regards, Ray L.

Wire.requestFrom(deviceID , 1);

One or both of the inputs can be implictly cast to either an int or uint8_t, therefore the two overloads are ambiguous.

Wire.h:requestFrom(int, int) Wire.h:requestFrom(uint8_t, uint8_t)

Explicitly cast the inputs to which ever version you intend.

OK, that makes sense. Odd thing is, that message only comes out sometimes. When I do a compile/upload, it doesn't come out. Doing just a compile, it does.

Regards, Ray L.