On 17-05-19 22:18, Tom Tromey wrote: > From: Tom Tromey > > PR c++/20020 concerns a crash in cp_print_value_fields. The immediate > cause is that cp_print_value_fields does not handle the case where > value_static_field fails. This is fixed in this patch by calling > cp_print_static_field from the "try" block. > > Digging a bit deeper, the error occurs because GCC does not emit a > DW_AT_const_value for a static constexpr member appearing in a > template class. I've filed a GCC bug for this. > > Tested on x86-64 Fedora 29. > > gdb/ChangeLog > 2019-05-17 Tom Tromey > > PR c++/20020: > * cp-valprint.c (cp_print_value_fields): Call > cp_print_static_field inside "try". > > gdb/testsuite/ChangeLog > 2019-05-17 Tom Tromey > > PR c++/20020: > * gdb.cp/constexpr-field.exp: New file. > * gdb.cp/constexpr-field.cc: New file. OK to backport to 8.3, as well as the followup patch "Fix two buglets in cp_print_value_fields patch"? Neither of the patches apply cleanly, so I'm attaching them here. The difference in test results is: ... +Running gdb/testsuite/gdb.cp/constexpr-field.exp ... +XFAIL: gdb.cp/constexpr-field.exp: print x (PRMS gcc/90526) +PASS: gdb.cp/constexpr-field.exp: print y ... Thanks, - Tom