From @obiwan-bartek on October 30, 2015 0:20
When you write a function with at least one parameter with default value
eg.
void foo(int a, int b = 0)
{
}
it does not gets generated it's prototype in header file, which results in an unreferenced calls in project to that function. When you remove the default parameter
the prototype shows in header file as expected.
Copied from original issue: arduino/Arduino#4048