aboutsummaryrefslogtreecommitdiff
path: root/gdb/testsuite/gdb.threads/schedlock.c
diff options
context:
space:
mode:
authorTom de Vries <tdevries@suse.de>2023-02-20 11:16:02 +0100
committerTom de Vries <tdevries@suse.de>2023-02-20 11:16:02 +0100
commit13d4a4bd5a7a686d8d5473a4c93b7798de97f745 (patch)
treec3cb0e628f8052cb4bdf3066cc5bc682bf034b87 /gdb/testsuite/gdb.threads/schedlock.c
parentc50e4ced39b19ae49748634356c8c37e18427129 (diff)
downloadgdb-13d4a4bd5a7a686d8d5473a4c93b7798de97f745.zip
gdb-13d4a4bd5a7a686d8d5473a4c93b7798de97f745.tar.gz
gdb-13d4a4bd5a7a686d8d5473a4c93b7798de97f745.tar.bz2
[gdb/testsuite] Fix gdb.threads/schedlock.exp for gcc 4.8.5
Since commit 9af467b8240 ("[gdb/testsuite] Fix gdb.threads/schedlock.exp on fast cpu"), the test-case fails for gcc 4.8.5. The problem is that for gcc 4.8.5, the commit turned a two-line loop: ... (gdb) next 78 while (*myp > 0) (gdb) next 81 MAYBE_CALL_SOME_FUNCTION(); (*myp) ++; (gdb) next 78 while (*myp > 0) ... into a three-line loop: ... (gdb) next 83 MAYBE_CALL_SOME_FUNCTION(); (*myp) ++; (gdb) next 84 cnt++; (gdb) next 85 } (gdb) next 83 MAYBE_CALL_SOME_FUNCTION(); (*myp) ++; (gdb) ... and the test-case doesn't expect this. Fix this by reverting back to the original loop shape as much as possible by: - removing the cnt++ line - replacing "while (1)" with "while (one)", where one is a volatile variable set to 1. Tested on x86_64-linux, using compilers: - gcc 4.8.5, 7.5.0, 12.2.1 - clang 4.0.1, 13.0.1
Diffstat (limited to 'gdb/testsuite/gdb.threads/schedlock.c')
-rw-r--r--gdb/testsuite/gdb.threads/schedlock.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/gdb/testsuite/gdb.threads/schedlock.c b/gdb/testsuite/gdb.threads/schedlock.c
index c4e7794..fec8968 100644
--- a/gdb/testsuite/gdb.threads/schedlock.c
+++ b/gdb/testsuite/gdb.threads/schedlock.c
@@ -75,13 +75,12 @@ volatile int call_function = 0;
void *thread_function(void *arg) {
int my_number = (long) arg;
unsigned long long int *myp = (unsigned long long int *) &args[my_number];
- volatile unsigned int cnt = 0;
+ volatile unsigned int one = 1;
- while (1)
+ while (one)
{
/* schedlock.exp: main loop. */
MAYBE_CALL_SOME_FUNCTION(); (*myp) ++;
- cnt++;
}
pthread_exit(NULL);