https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108053

--- Comment #5 from GCC Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Tomasz Kaminski <tkami...@gcc.gnu.org>:

https://gcc.gnu.org/g:22847ef193670e761ed205a4a6f0a694b939d4e4

commit r15-8023-g22847ef193670e761ed205a4a6f0a694b939d4e4
Author: Tomasz KamiÅski <tkami...@redhat.com>
Date:   Mon Mar 10 16:51:57 2025 +0100

    libstdc++: Hide 128-bit int and float types behind handle for
basic_format_arg visitation [PR108053]

    Implement visit_format_arg and basic_format_arg::visit function,
    in terms of  _M_visit_user member functions, that wraps any type
    stored inside basic_format_arg, that is not specified in the standard,
    into the handle. This affects __int128, unsigned __int128,
    PowerPC specific __ieee128 and __ibm128, and _Float128 for architectures
    where long double is not 128bits.

    The bfloat16, _Float16, _Float32, _Float32, and _Float128 for
    128bits long double are not are not addressed, as they
    are transformed into a standard floating point types.

    For internal purposes __format::__visit_format_arg function is
    used, that provides an unmodified access to stored object.

            PR libstdc++/108053

    libstdc++-v3/ChangeLog:

            * include/std/format (basic_format_arg::_M_visit_user):
            Helper function for wrapping extension types into handle.
            (visit_format_arg): Call `_M_visit_user` instead of `_M_visit`.
            (basic_format_arg::visit): As above.
            (__format::__visit_format_arg): Provides direct access to
            values stored in basic_format_arg.
            (__format::__int_from_arg): Use __format::__visit_format_arg
            instead of std::visit_format_arg.
            (_Formatting_scanner::_M_format_arg): As above.
            (_Checking_scanner::__do_vformat_to): As above.
            * testsuite/std/format/arguments/args.cc: New tests.
            * testsuite/std/format/string.cc: Test for using __int128
            as width/precision.

    Reviewed-by: Jonathan Wakely <jwak...@redhat.com>
    Signed-off-by: Tomasz KamiÅski <tkami...@redhat.com>

Reply via email to