А не может быть такого, что компилятор слишком умный и функции результат которых не используется просто не компилирует?
Или сам определяет что входной параметр input (в первом посте) всегда будет >0?
Технический форум по робототехнике.
volatile uint32_t temp;
void main(void)
{
temp = CompilerWarningsTest(0);
temp = CompilerWarningsTest(1);
...
}