-
Notifications
You must be signed in to change notification settings - Fork 131
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[PLAT-6395] Increase warning strictness #1074
Merged
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
958522c
to
42ad97b
Compare
kstenerud
approved these changes
Apr 20, 2021
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Goal
Increase the level of compiler diagnostics in the main Xcode project in order to detect warnings and potential bugs.
Changeset
Extra warning flags are configured in
Bugsnag.xcconfig
and apply at the project level.GCC_TREAT_WARNINGS_AS_ERRORS
is disabled for unit test targets because they contain code that intentionally breaks the rules.The warnings that required the most changes:
-Wimplicit-atomic-properties
required being explicit about atomicity of properties. Since most Bugsnag objects are not accessed from multiple threads simultaneously, properties that were previously implicitly atomic are now explicitly nonatomic.-Wnullable-to-nonnull-conversion
required a large number of changes related to deserializing objects from JSON in particular. Previously there were cases where properties that were declared asnonnull
could in fact be null and could have caused crashes when accessed from Swift. The nullability of properties has been kept the same to avoid breaking any client source code that depends on values being non-optional.Testing
Tested via unit tests and full E2E test runs.