explicitly test for stderr in gdb.base/dprintf.exp
authorBruno Larsen <blarsen@redhat.com>
Wed, 20 Jul 2022 19:44:36 +0000 (16:44 -0300)
committerBruno Larsen <blarsen@redhat.com>
Tue, 13 Sep 2022 11:12:11 +0000 (13:12 +0200)
commit3f5bbc3e2075ef5061a815c73fdc277218489f22
treed8ff7203958b089b8fd6196810515da8e1a94457
parent6a69b0a1804fed5ad106ae0664733d6569f30061
explicitly test for stderr in gdb.base/dprintf.exp

Not all compilers add stderr debug information when compiling a
program. Clang, for instance, prefers to add nothing from standard
libraries and let an external debug package have this information.
Because of this, gdb.base/dprintf.exp was failing when GDB attempted to
use dprintf as a call to fprintf(stderrr, ...), like this:

 (gdb) PASS: gdb.base/dprintf.exp: call: fprintf: set dprintf style to call
 continue
 Continuing.
 kickoff 1234
 also to stderr 1234
 'stderr' has unknown type; cast it to its declared type
 (gdb) FAIL: gdb.base/dprintf.exp: call: fprintf: 1st dprintf (timeout)

To avoid this false positive, we explicitly test to see if
the compiler has added information about stderr at all, and abort
testing dprintf as an fprintf call if it is unavailable.
gdb/testsuite/gdb.base/dprintf.exp