I like to treat warnings as errors and refuse releases with errors.
Occasionally I disable single warning in a specific file because it does not make sense.
Using TODO also makes sense, I'm mostly used to seeing them years after when debugging.
In your case it sounds like you may end up ignoring all the TODO's as too many of them become noise. I would instead disable the specific warnings in the compilers options, instead of in the code, and then deal with the remaining.
Later you can disable one warning at a time and fix it.