Overloaded function in project .ino file causes errors after 1.8.9 IDE update

I've been using IDE v 1.8.5 and updated to the latest version today. Now an overloaded function I use to log errors won't compile (see examples below). This code compiled fine yesterday with IDE v 1.8.5.

I don't see any changes in the Release Notes for any version between 1.8.5 and 1.8.9 that would explain this. Any suggestions?

WSGP_M4_FM_SingleEthernet_PassThru7a_RTC32KHz_DateColSort:8795:18: error: previous declaration 'void logError(uint16_t, bool, const char*, int, const char*)' here

void logError(uint16_t EPDnum, bool addNewLine, const char *fileNm, int lineNo, const char *fnctn) {

^

WSGP_M4_FM_SingleEthernet_PassThru7a_RTC32KHz_DateColSort:8841:108: error: declaration of C function 'void logError(double, bool, const char*, int, const char*)' conflicts with

void logError(double EPDnum, bool addNewLine, const char *fileNm, int lineNo, const char *fnctn) {

^

WSGP_M4_FM_SingleEthernet_PassThru7a_RTC32KHz_DateColSort:8791:18: error: previous declaration 'void logError(uint8_t, bool, const char*, int, const char*)' here

void logError(uint8_t EPDnum, bool addNewLine, const char *fileNm, int lineNo, const char *fnctn) {

And we're supposed to just guess what your (obviously incorrect) code looks like???

Regards,
Ray L.

My (obviously incorrect) code compiled and ran just fine with IDE v 1.8.5. V 1.8.9 considers the overloaded declarations shown in my post to be illegal redeclarations. I wouldn't think the body of the function needs to be posted to see that.

...error: declaration of C function...

Got a few too many dot-c files in your project?

Got a few too many many extern "C"s in your project?

Depends on what you consider to be "too many". I have 3 C files, none of which contain the overloaded logError() function the compiler objects to.

If I move the declarations of the overloaded functions from an included .h file directly into the .ino file in which the overloaded functions reside, it builds just fine.

OMOTS:
...none of which contain the overloaded logError() function the compiler objects to...

"Contain" is not only ambiguous the way you used it, its meaning in C++ is radically than your use.

(I wonder if that qualifies as weasel words.)

OMOTS:
If I move the declarations of the overloaded functions from an included .h file directly into the .ino file in which the overloaded functions reside, it builds just fine.

There you go. Problem solved.

Or, if that solution is unacceptable then you will have to stop playing games. I don't have the the time nor the patience for someone who deliberately withholds pertinent information.

Clearly I'm doing something that the compiler doesn't like, but your responses aren't helping me understand the problem.

I've overloaded the function logError() so different data types can be passed to it. Each variant does a type-specific conversion of that data to a character array, which is passed to the version that stores it in a log file. The code for all of these versions are in the .ino file.

v 1.8.5 of the IDE didn't require a forward function declaration; it compiled and linked my .ino file without them. IDE v 1.8.9 apparently does, and I don't understand why this requirement can't be met by putting the forward declarations in a .h file that is included in the .ino file.

When the declarations are in the .h file the compiler thinks they're a C redeclaration of a C++ function. Why does it do this, and what's the right way to resolve it?

I imagine most of the people on the forum who are capable of helping you have already decided not to due to your refusal to post a complete code that demonstrates the problem and your general bad attitude. So, good luck.

OMOTS:
Why does it do this, and what's the right way to resolve it?

POST YOUR CODE! Its just that simple!

The problem is in YOUR CODE, NOT the compiler. Until you do that, don't expect much help here. Otherwise, I suggest you call the Psychic Hotline. There are no mind-readers here.

Regards,
Ray L.