-
Notifications
You must be signed in to change notification settings - Fork 2.2k
More systematic gcc & clang coverage #4083
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
Merged
Merged
Changes from all commits
Commits
Show all changes
5 commits
Select commit
Hold shift + click to select a range
c994035
More systematic gcc coverage, based on https://github.com/pybind/pybi…
rwgk 7d49b6c
Fix complete fail.
rwgk f633ed4
Resolve GCC 11 & 12 "redundant move in return statement" warnings.
rwgk da8168d
Also add clang 11, 12, 13 (to gather info for warning suppressions).
rwgk f6a3716
Add & use `PYBIND11_DETECTED_CLANG_WITH_MISLEADING_CALL_STD_MOVE_EXPL…
rwgk File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or 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
This file contains hidden or 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
This file contains hidden or 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
This file contains hidden or 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
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.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If you remove the std::move are the pragmas necessary here, anymore?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Here a GCC 11 & 12 warning is at conflict with a clang 7 through 12 warning.
When GCC 11 & 12 complained, I simply removed the
std::move
. (Thinking: "Let's see what happens.")Next CI: many clang failures.
Next CI: complete the clang coverage to better understand what is going on.
Looking at the results I concluded (guessed TBH): clang was wrong for a long time, but that was fixed in clang 13. The fix appears to stick: clang 14 & 15 agree.
Next CI: with pragmas for clang added.
I considered introducing something like
or
but decided against it because there are only two affected locations, and the implementation you see now is easier to understand just looking at the local code, without having to look elsewhere.