Summary: This warning (C4127) in this particular case is a subtle compiler bug. Feel free to disable it.
In depth:
It was meant to catch situations when logical expression evaluates to a constant in non-obvious situations (such as, if(a==a && a!=a), and somehow, it turned while(true) and other useful constructs into invalid.
Microsoft recommends using for(;;) for infinite loop if you want to have this warning on, and there is no solution for your case. This is one of very few Level-4 warnings my company’s development conventions allow to disable.