mpi: emit the anonymous struct typedefs instead of dropping them - #531
Merged
Conversation
MPI_Status and MPI_F08_status are declared as typedefs of an anonymous struct, so the typedef carries the layout and mpi_api.yaml lists no separate struct for them -- it has no `structs` entries at all. The generator looked every struct typedef up by name in that empty list and skipped whatever it did not find, so both types were silently missing from mpi_library.rb. hip already guards for this exact shape. Applying the same one-liner: when the target is anonymous, the typedef's own type is the definition. Adds 16 lines to the generated mpi_library.rb -- the two classes and their by_value typedefs -- and changes nothing else. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
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
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.
MPI_Status and MPI_F08_status are declared as typedefs of an anonymous struct, so the typedef carries the layout and mpi_api.yaml lists no separate struct for them -- it has no
structsentries at all. The generator looked every struct typedef up by name in that empty list and skipped whatever it did not find, so both types were silently missing from mpi_library.rb.hip already guards for this exact shape. Applying the same one-liner: when the target is anonymous, the typedef's own type is the definition.
Adds 16 lines to the generated mpi_library.rb -- the two classes and their by_value typedefs -- and changes nothing else.