BUG: ImageIOBase should internally use signed char for CHAR
#5463
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.
ImageIOBase::GetComponentTypeTraitsincorrectly assumed that the plainchartype is always mapped toIOComponentEnum::CHAR. However, that isn't the case when the defaultchartype is an unsigned type (as can be specified by GCC option-funsigned-charand MSVC option/J).This bug was introduced with pull request #5421 commit 3604e0c "ENH: Ease getting type traits of pixel components from ImageIO" (merged to the master branch on June 23, 2025).
The bug caused incorrect return values from the following function calls:
As was observed from the static_assert failures in "itkImageIOBaseTest.cxx", when using the compiler option that makes the default
charunsigned.Note: The bug was my own fault 😺