Question: Whenever I compile [SQLite](http://www.sqlite.org) with Visual C++ 9 I get hundreds of warnings, such as

* potentially uninitialized variables
* conversion from wider integer types to narrower integer types
* signed/unsigned integers mismatches.

I'm not alone - there's an [SQLite FAQ question](http://www.sqlite.org/faq.html#q17) specifically about that. The answer to that question says that

* those warnings don't arise in GCC that SQLite developers use
* warnings are not that of a problem since the team tests code thorougly

Of course I can't argue against those points, but...

* I don't use GCC - I use VC++ and VC++ does show warnings
* they tested the code compiled with GCC and I don't use GCC, so there might be some implementation-defined difference or something like different levels of C standard compliance between GCC and VC++ that will subtly break the code with severe consequences.

That's why I don't like the idea of simply ignoring all warnings.

So how do I deal with warnings VC++ displays when compiling SQLite?

Answer: 
Why not use `#pragmas` to disable these warnings if they're not actually causing any harm? Or switch to a lower warning level (as I assume you have the SQLite source as a separate VC lib project?)
First, remember that warnings are not error indicators. They're there to draw the developers' attention to things that *could* indicate errors, and nothing else. 

If the code works, the number of warnings emitted is pretty much irrelevant.

If you want to play it safe, look at the warnings: Are any of them related to implementation-defined behavior which is handled differently by VS and GCC? If so, you might have a problem. But as long as the warnings are about things that are handled identically by both compilers (such as integer/double conversions), it can be ignored. 

As I recall (been a while since I compiled SQLite on VS without silencing warnings), virtually all the warnings are about implicit conversions between built-in types, all of which are perfectly safe, as long as the developer is aware they're taking place.

SQLite works just fine on VS though. The library is widely used by a lot of big projects. It is tested fairly extensively.