[committed][gdb/testsuite] Update psym-external-decl.exp for gcc-10/clang

Tom de Vries
2020-05-02T07:51:31Z

Hi,

When running test-case gdb.base/psym-external-decl.exp with gcc-10, we have:
...
(gdb) print aaa^M
'aaa' has unknown type; cast it to its declared type^M
(gdb) FAIL: gdb.base/psym-external-decl.exp: print aaa
...

With an an earlier version, gcc still emits the debug info for the
declaration of aaa:
...
<0><d2>: Abbrev Number: 1 (DW_TAG_compile_unit)
<d8> DW_AT_name : psym-external-decl.c
<1><f4>: Abbrev Number: 2 (DW_TAG_variable)
<f5> DW_AT_name : aaa
<ff> DW_AT_external : 1
<ff> DW_AT_declaration : 1
...
but with gcc-10 that's no longer the case.

Fix the test-case by adding a use of aaa in psym-external-decl.c.

That still doesn't work for clang, so skip test in that case.

Tested with x86_64-linux, with gcc 7.5.0, gcc 10.0.0 and clang 5.0.2.

Also tested by reverting corresponding fix and ensuring test-case still
fails.

Committed to trunk.

Thanks,
- Tom

[gdb/testsuite] Update psym-external-decl.exp for gcc-10/clang

gdb/testsuite/ChangeLog:

2020-05-02 Tom de Vries <tdevries@suse.de>

* gdb.base/psym-external-decl.c (main): Add use of variable aaa.

---
gdb/testsuite/gdb.base/psym-external-decl.c | 2 +-
gdb/testsuite/gdb.base/psym-external-decl.exp | 5 +++++
2 files changed, 6 insertions(+), 1 deletion(-)

diff --git a/gdb/testsuite/gdb.base/psym-external-decl.c b/gdb/testsuite/gdb.base/psym-external-decl.c
index 7a4b1077741..e2374327bde 100644
--- a/gdb/testsuite/gdb.base/psym-external-decl.c
+++ b/gdb/testsuite/gdb.base/psym-external-decl.c
@@ -20,6 +20,6 @@ extern int aaa;
int
main (void)
{
- return 0;
+ return aaa;
}

diff --git a/gdb/testsuite/gdb.base/psym-external-decl.exp b/gdb/testsuite/gdb.base/psym-external-decl.exp
index bbcc2745755..d0388d5655e 100644
--- a/gdb/testsuite/gdb.base/psym-external-decl.exp
+++ b/gdb/testsuite/gdb.base/psym-external-decl.exp
@@ -15,6 +15,11 @@

standard_testfile .c psym-external-decl-2.c

+get_compiler_info
+if { [test_compiler_info "clang-*"] } {
+ return -1
+}
+
set srcfiles [list $srcfile $srcfile2]

if { [build_executable_from_specs \