This is from the 8.3 source blob, not git.
Line 315 in cp-valprint.c has a try/catch block to catch problems with finding a static elf symbol. However, cp_print_static_field() is called regardless of the outcome and the following call chain never checks that 'v' is non-null.
The proximate fix is trivial: simply move the call into the try part of the block, e.g.:
else if (field_is_static (&TYPE_FIELD (type, i)))
struct value *v = NULL;
v = value_static_field (type, i);
cp_print_static_field (TYPE_FIELD_TYPE (type, i),
v, stream, recurse + 1,
CATCH (ex, RETURN_MASK_ERROR)
_("<error reading variable: %s>"),
Now *why* the static symbol is not found is another question altogether, but this is clearly a bug.
Thanks for the report. This has already been fixed in git.
*** This bug has been marked as a duplicate of bug 20020 ***