Avoid timeouts in gdb.compile
authorTom Tromey <tromey@adacore.com>
Wed, 30 Nov 2022 18:27:10 +0000 (11:27 -0700)
committerTom Tromey <tromey@adacore.com>
Thu, 1 Dec 2022 15:28:20 +0000 (08:28 -0700)
commit9a7fde04ca4232d4b2efed61486fff65e83ab3a2
tree79ce2f78ee0a2610532e4a5ffc90421aa1083a93
parent5b92bbd934059eb06cf531c268627deef53886aa
Avoid timeouts in gdb.compile

PR compile/29541 points out that some of the C++ tests in gdb.compile
will time out when the glibc debuginfo is installed.  This was
interfering with my hacking on gdb by making test runs extremely long,
so I looked into it.

Internally the bug seems to be that gdb tries to convert multiple
symbols named "var" via the compiler interface; one such symbol (I
didn't track it down too far) causes the C++ compiler plugin to crash.

Unfortunately, the crash is reported as a timeout, as the gdb side of
the plugin simply hangs.  This seems like a bug in the plugin RPC
mechanism and, worse, apparently when I wrote this stuff I didn't
really consider error reporting very much at all, so gdb can't really
detect failures in the first place.

Anyway... this patch works around the timeout by compiling a simple
test that should provoke this bug, and then using "untested" if it
notices a GCC crash.

Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=29541
17 files changed:
gdb/testsuite/gdb.compile/compile-cplus-anonymous.exp
gdb/testsuite/gdb.compile/compile-cplus-array-decay.exp
gdb/testsuite/gdb.compile/compile-cplus-inherit.exp
gdb/testsuite/gdb.compile/compile-cplus-member.exp
gdb/testsuite/gdb.compile/compile-cplus-method.exp
gdb/testsuite/gdb.compile/compile-cplus-namespace.exp
gdb/testsuite/gdb.compile/compile-cplus-nested.exp
gdb/testsuite/gdb.compile/compile-cplus-print.exp
gdb/testsuite/gdb.compile/compile-cplus-virtual.exp
gdb/testsuite/gdb.compile/compile-cplus.exp
gdb/testsuite/gdb.compile/compile-ifunc.exp
gdb/testsuite/gdb.compile/compile-ops.exp
gdb/testsuite/gdb.compile/compile-print.exp
gdb/testsuite/gdb.compile/compile-setjmp.exp
gdb/testsuite/gdb.compile/compile-tls.exp
gdb/testsuite/gdb.compile/compile.exp
gdb/testsuite/lib/compile-support.exp