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