Add float8_base as friend class to FP4 and FP6 types. #253
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.
Add float8_base as friend class to FP4 and FP6 types.
This fixes a compile error on Clang 12 and below. Clang had a bug where if a superclass instantiated an instance of a subclass with a constructor defined in the superclass and brought into the subclass with a using-declaration, and the constructor had at least two arguments, compilation would fail. See https://godbolt.org/z/aeP9sP5x5 for an example. The error would complain that the superclass does not have access to the subclass's protected members, despite the constructor being declared in the superclass itself.
The fix is to make the superclass a friend class of the subclass. This is already done in float8.h, but wasn't done in mxfloat.h.
openxla/xla#19096 was rolled back since it added an include of mxfloat.h in TensorFlow, causing an Android TensorFlow build using Android NDK r21e to fail since this NDK uses Clang 9.