[gdb/testsuite] Handle for loop initial decl with gcc 4.8.5

When running test-case gdb.threads/schedlock-thread-exit.exp on a system with
system compiler gcc 4.8.5, I run into:
...
src/gdb/testsuite/gdb.threads/schedlock-thread-exit.c:33:3: error: \
  'for' loop initial declarations are only allowed in C99 mode
...

Fix this by:
- using -std=c99, or
- using -std=gnu99, in case that's required, or
- in the case of the jit test-cases, rewriting the for loops.

Tested on x86_64-linux, both with gcc 4.8.5 and gcc 7.5.0.
This commit is contained in:
Tom de Vries 2022-01-03 15:36:36 +01:00
parent 1eeb031630
commit b19f4f6178
7 changed files with 19 additions and 9 deletions

View File

@ -23,7 +23,8 @@ if [target_info exists noargs] then {
standard_testfile .c
if {[build_executable "failed to prepare" $testfile $srcfile debug] == -1} {
if {[build_executable "failed to prepare" $testfile $srcfile \
{debug additional_flags=-std=c99}] == -1} {
return
}

View File

@ -54,8 +54,8 @@ load_symbol (void *addr, const char *sym_name)
ElfW (Addr) sym_new_addr = 0;
/* Find `func_name` in symbol_table and return its address. */
for (int i = 0; i < ehdr->e_shnum; ++i)
int i;
for (i = 0; i < ehdr->e_shnum; ++i)
{
if (shdr[i].sh_type == SHT_SYMTAB)
{
@ -65,7 +65,8 @@ load_symbol (void *addr, const char *sym_name)
char *const strtab
= (char *) (addr + shdr[shdr[i].sh_link].sh_offset);
for (ElfW (Sym) *p = symtab; p < symtab_end; ++p)
ElfW (Sym) *p;
for (p = symtab; p < symtab_end; ++p)
{
const char *s = strtab + p->st_name;
if (strcmp (s, sym_name) == 0)

View File

@ -106,7 +106,8 @@ proc_with_prefix test { non-stop threaded run-or-attach } {
}
foreach_with_prefix threaded {0 1} {
set options [list debug additional_flags=-DWITH_THREADS=$threaded]
set options [list debug additional_flags=-DWITH_THREADS=$threaded \
additional_flags=-std=gnu99]
if { $threaded } {
set binfile $binfile_threads
lappend options pthreads

View File

@ -24,7 +24,7 @@ set MIFLAGS "-i=mi"
standard_testfile .c
if {[gdb_compile_pthreads "$srcdir/$subdir/$srcfile" $binfile \
executable debug] != "" } {
executable {debug additional_flags=-std=gnu99}] != "" } {
return -1
}

View File

@ -33,7 +33,13 @@ if { [skip_python_tests] } { continue }
proc build_inferior {exefile lang} {
global srcdir subdir srcfile testfile hex
if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${exefile}" executable "debug $lang"] != "" } {
set flags [list debug $lang]
if { $lang == "c" } {
lappend flags additional_flags=-std=c99
}
if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${exefile}" \
executable $flags] != "" } {
untested "failed to compile in $lang mode"
return -1
}

View File

@ -23,7 +23,7 @@ if [get_compiler_info] {
}
if {[gdb_compile_pthreads "${srcdir}/${subdir}/${srcfile}" "${binfile}" \
executable {debug}] != "" } {
executable {debug additional_flags=-std=gnu99}] != "" } {
return -1
}

View File

@ -22,7 +22,8 @@
standard_testfile
if { [build_executable "failed to prepare" ${testfile} ${srcfile} {debug pthreads}] } {
if { [build_executable "failed to prepare" ${testfile} ${srcfile} \
{debug pthreads additional_flags=-std=c99}] } {
return
}