https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103046
Jakub Jelinek <jakub at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Target Milestone|--- |11.3 Ever confirmed|0 |1 Summary|Incorrect debug info for |[11/12 Regression] |uint128 bit shift in gcc |Incorrect debug info for |11.2 |uint128 bit shift in gcc | |11.2 CC| |jakub at gcc dot gnu.org Last reconfirmed| |2021-11-02 Status|UNCONFIRMED |ASSIGNED Assignee|unassigned at gcc dot gnu.org |jakub at gcc dot gnu.org --- Comment #1 from Jakub Jelinek <jakub at gcc dot gnu.org> --- Started with my r11-7757-gfc9c4e5fc50c7fcbd27d6cb3dd372f7da8216954 aka PR99562 change. Untested fix: 2021-11-02 Jakub Jelinek <ja...@redhat.com> PR debug/103046 * dwarf2out.c (add_const_value_attribute) <case CONST_WIDE_INT>: Round prec up to next HOST_BITS_PER_WIDE_INT multiple. --- gcc/dwarf2out.c.jj 2021-10-08 10:52:47.086531820 +0200 +++ gcc/dwarf2out.c 2021-11-02 16:25:24.505504356 +0100 @@ -20102,6 +20102,7 @@ add_const_value_attribute (dw_die_ref di unsigned int prec = MIN (wi::min_precision (w1, UNSIGNED), (unsigned int) CONST_WIDE_INT_NUNITS (rtl) * HOST_BITS_PER_WIDE_INT); + prec = ROUND_UP (prec, HOST_BITS_PER_WIDE_INT); wide_int w = wide_int::from (w1, prec, UNSIGNED); add_AT_wide (die, DW_AT_const_value, w); }