On Tue, Sep 12, 2023 at 01:27:44PM -0400, Jason Merrill via Gcc-patches wrote:
> Tested x86_64-pc-linux-gnu, applying to trunk.
> 
> -- 8< --
> 
> The argument might not already be an integer.
> 
>       PR c++/111357
> 
> gcc/cp/ChangeLog:
> 
>       * pt.cc (expand_integer_pack): Convert argument to int.
> 
> gcc/testsuite/ChangeLog:
> 
>       * g++.dg/ext/integer-pack7.C: New test.
> ---
>  gcc/cp/pt.cc                             |  2 ++
>  gcc/testsuite/g++.dg/ext/integer-pack7.C | 38 ++++++++++++++++++++++++
>  2 files changed, 40 insertions(+)
>  create mode 100644 gcc/testsuite/g++.dg/ext/integer-pack7.C
> 
> diff --git a/gcc/cp/pt.cc b/gcc/cp/pt.cc
> index 838179d5fe3..b583c11eb99 100644
> --- a/gcc/cp/pt.cc
> +++ b/gcc/cp/pt.cc
> @@ -3793,6 +3793,8 @@ expand_integer_pack (tree call, tree args, 
> tsubst_flags_t complain,
>      }
>    else
>      {
> +      hi = perform_implicit_conversion_flags (integer_type_node, hi, 
> complain,
> +                                           LOOKUP_IMPLICIT);

FWIW, we have perform_implicit_conversion for this.

Marek

Reply via email to