This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Document NV to int cast macros
authorKarl Williamson <khw@cpan.org>
Thu, 27 Aug 2020 12:49:48 +0000 (06:49 -0600)
committerℕicolas ℝ <nicolas@atoomic.org>
Tue, 29 Sep 2020 14:50:11 +0000 (08:50 -0600)
perl.h

diff --git a/perl.h b/perl.h
index b0ddc56..327e1b5 100644 (file)
--- a/perl.h
+++ b/perl.h
@@ -4142,6 +4142,21 @@ my_swap16(const U16 x) {
 /* This may look like unnecessary jumping through hoops, but converting
    out of range floating point values to integers *is* undefined behaviour,
    and it is starting to bite.
+
+=for apidoc_section Casting
+=for apidoc Am|I32|I_32|NV what
+Cast an NV to I32 while avoiding undefined C behavior
+
+=for apidoc Am|U32|U_32|NV what
+Cast an NV to U32 while avoiding undefined C behavior
+
+=for apidoc Am|IV|I_V|NV what
+Cast an NV to IV while avoiding undefined C behavior
+
+=for apidoc Am|UV|U_V|NV what
+Cast an NV to UV while avoiding undefined C behavior
+
+=cut
 */
 #ifndef CAST_INLINE
 #define I_32(what) (cast_i32((NV)(what)))