summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/mpfr-impl.h10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/mpfr-impl.h b/src/mpfr-impl.h
index 9dbf955f1..d88ead747 100644
--- a/src/mpfr-impl.h
+++ b/src/mpfr-impl.h
@@ -2687,6 +2687,16 @@ extern "C" {
(see changeset r13820 in the ubf2 branch). So, for the time being,
as long as the code does not break, do not change anything.
+ Note: The condition "use mpfr_ptr to access the usual mpfr_t members and
+ mpfr_ubf_ptr to access the additional member _mpfr_zexp" may be ignored
+ if the union type is visible within the function (see ISO C99 6.5.2.3#5
+ and 6.5.2.3#8 for the example, this implementation being very similar to
+ the valid fragment of this example), which must be the case as the union
+ is declared globally. However, this seems to be buggy in GCC:
+
+ https://gcc.gnu.org/bugzilla/show_bug.cgi?id=14319
+ https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65892
+
Alternatively, GCC's may_alias attribute could conditionally be used
on the __mpfr_ubf_struct and __mpfr_struct types (though it would be
much stronger than needed since only these two types may alias each