https://gcc.gnu.org/bugzilla/show_bug.cgi?id=118929
--- Comment #1 from David Malcolm <dmalcolm at gcc dot gnu.org> --- For reference, GCC 15 prints the diagnostic textually like this when generating that sarif file (via a test plugin): diagnostic-test-paths-multithreaded-inline-events.c:17:3: warning: deadlock due to inconsistent lock acquisition order 17 | acquire_lock_a (); /* { dg-warning "deadlock due to inconsistent lock acquisition order" } */ | ^~~~~~~~~~~~~~~~~ Thread: 'Thread 1' 'foo': event 1 | | 9 | { | | ^ | | | | | (1) entering 'foo' | +--> 'foo': event 2 | | 10 | acquire_lock_a (); | | ^~~~~~~~~~~~~~~~~ | | | | | (2) lock a is now held by thread 1 | Thread: 'Thread 2' 'bar': event 3 | | 15 | { | | ^ | | | | | (3) entering 'bar' | +--> 'bar': event 4 | | 16 | acquire_lock_b (); | | ^~~~~~~~~~~~~~~~~ | | | | | (4) lock b is now held by thread 2 | Thread: 'Thread 1' 'foo': event 5 | | 11 | acquire_lock_b (); | | ^~~~~~~~~~~~~~~~~ | | | | | (5) deadlocked due to waiting for lock b in thread 1 (acquired by thread 2 at (4))... | Thread: 'Thread 2' 'bar': event 6 | | 17 | acquire_lock_a (); /* { dg-warning "deadlock due to inconsistent lock acquisition order" } */ | | ^~~~~~~~~~~~~~~~~ | | | | | (6) ...whilst waiting for lock a in thread 2 (acquired by thread 1 at (2)) |