>Right now my C Language option on the Xcode 5.1.1 is set to "GNU99".
>When using this option I am getting a lot of different warnings like:
>Value Conversion Issue
>Implicit conversion loses integer precision.
>I know its just a warning, but I prefer the code to be compiled clean.
>I would guess that I need a change the option to get a clean compile.
>Which one I should use?
I am resurrecting this old thread, because I recently had a similar
issue and didn't find an answer in this list.
When building sqlite-amalgamation-3210000 using Xcode 9.1 in a newly
created project, I get a few dozen warnings, mostly about value
conversion issues as mentioned above, a few about ambiguous MIN/MAX
macro definitions, unreachable code, possible misuse of comma
operator, and one about a (not C99-compliant) over-length string.
Most warnings are easily seen to be harmless (e.g., unreachable code
depends on compile-time flags, and ambiguous macros likely depend on
merging multiple files into one—but the various macro definitions
are equivalent). Besides, I get the same warnings if I add suitable
-W flags to sqlite-autoconf-3210000's Makefile, which otherwise
builds cleanly. This gives me confidence that the warnings may
indeed be ignored—although I am a bit scared of ignoring “implicit
conversion loses integer precision” warnings: I'd like someone
familiar with the code to confirm that that is no cause of concern.
So, you may silence all the warnings by setting the following items
in the target's build settings:
Apple LLVM 9.0 - Warnings - All Languages
- Implicit Conversion to 32 Bit Type: No
- Suspicious Commas: No
- Unreachable Code: No
Apple LLVM 9.0 - Custom Compiler Flags
- Other Warning Flags: -Wno-ambiguous-macro -Wno-overlength-strings
To avoid missing potential problems in the rest of your code, I'd
recommend suppressing the warnings only for the Release
configuration and only for the specific target.
Hope this may be helpful to others as well,
sqlite-users mailing list