https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101216
Bug ID: 101216 Summary: [12 regression] setjmp/longjmp excess errors after r12-1805 Product: gcc Version: 12.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: middle-end Assignee: unassigned at gcc dot gnu.org Reporter: seurer at gcc dot gnu.org Target Milestone: --- g:e9e2bad7251477db92ab9ebcdc010f9282dd9890, r12-1805 make -k check-gcc RUNTESTFLAGS="analyzer.exp=gcc.dg/analyzer/setjmp-2.c" FAIL: gcc.dg/analyzer/setjmp-2.c (test for excess errors) # of expected passes 2 # of unexpected failures 1 spawn -ignore SIGHUP /home/seurer/gcc/git/build/gcc-test/gcc/xgcc -B/home/seurer/gcc/git/build/gcc-test/gcc/ /home/seurer/gcc/git/gcc-test/gcc/testsuite/gcc.dg/analyzer/setjmp-2.c -fdiagnostics-plain-output -fanalyzer -Wanalyzer-too-complex -fanalyzer-call-summaries -fdiagnostics-show-line-numbers -fdiagnostics-path-format=inline-events -fdiagnostics-show-caret -S -o setjmp-2.s /home/seurer/gcc/git/gcc-test/gcc/testsuite/gcc.dg/analyzer/setjmp-2.c: In function 'test_2': /home/seurer/gcc/git/gcc-test/gcc/testsuite/gcc.dg/analyzer/setjmp-2.c:30:7: note: path 30 | __analyzer_dump_path (); /* { dg-message "path" } */ | ^~~~~~~~~~~~~~~~~~~~~~~ 'test_2': event 1 | | 23 | i = SETJMP(env); | | ^~~~~~ | | | | | (1) 'setjmp' called here | 'test_2': events 2-4 | | 27 | if (i != 0) | | ^ | | | | | (2) following 'false' branch (when 'i == 0')... |...... | 33 | longjmp (env, 1); | | ~~~~~~~~~~~~~~~~ | | | | | (3) ...to here | | (4) rewinding within 'test_2' from 'longjmp'... | 'test_2': event 5 | | 23 | i = SETJMP(env); | | ^~~~~~ | | | | | (5) ...to 'setjmp' (saved at (1)) | 'test_2': events 6-8 | | 27 | if (i != 0) | | ^ | | | | | (6) following 'true' branch (when 'i != 0')... | 28 | { | 29 | foo (2); | | ~~~~~~~ | | | | | (7) ...to here | 30 | __analyzer_dump_path (); /* { dg-message "path" } */ | | ~~~~~~~~~~~~~~~~~~~~~~~ | | | | | (8) here | In file included from /home/seurer/gcc/git/gcc-test/gcc/testsuite/gcc.dg/analyzer/setjmp-2.c:5: /home/seurer/gcc/git/gcc-test/gcc/testsuite/gcc.dg/analyzer/setjmp-2.c: In function 'test_1': /home/seurer/gcc/git/gcc-test/gcc/testsuite/gcc.dg/analyzer/test-setjmp.h:19:12: note: in a call to function 'setjmp' 19 | extern int setjmp(jmp_buf env); | ^~~~~~ /home/seurer/gcc/git/gcc-test/gcc/testsuite/gcc.dg/analyzer/setjmp-2.c: In function 'test_3': /home/seurer/gcc/git/gcc-test/gcc/testsuite/gcc.dg/analyzer/test-setjmp.h:22:13: note: in a call to function 'longjmp' 22 | extern void longjmp(jmp_buf env, int val); | ^~~~~~~ /home/seurer/gcc/git/gcc-test/gcc/testsuite/gcc.dg/analyzer/setjmp-2.c: In function 'test_4': /home/seurer/gcc/git/gcc-test/gcc/testsuite/gcc.dg/analyzer/test-setjmp.h:22:13: note: in a call to function 'longjmp' PASS: gcc.dg/analyzer/setjmp-2.c (test for warnings, line 30) PASS: gcc.dg/analyzer/setjmp-2.c expected multiline pattern lines 39-83 was found: "\s*NN \| __analyzer_dump_path \(\);.*\n \| \^~~~~~~~~~~~~~~~~~~~~~~\n 'test_2': event 1.*\n \|.*\n \| NN \| i = SETJMP\(env\);.*\n \| \| \^~~~~~\n \| \| \|.*\n \| \| \(1\) 'setjmp' called here.*\n \|.*\n 'test_2': events 2-4.*\n \|.*\n \| NN \| if \(i != 0\).*\n \| \| \^\n \| \| \|.*\n \| \| \(2\) following 'false' branch \(when 'i == 0'\)\.\.\..*\n \|\.\.\.\.\.\..*\n \| NN \| longjmp \(env, 1\);.*\n \| \| ~~~~~~~~~~~~~~~~\n \| \| \|.*\n \| \| \(3\) \.\.\.to here.*\n \| \| \(4\) rewinding within 'test_2' from 'longjmp'\.\.\..*\n \|.*\n 'test_2': event 5.*\n \|.*\n \| NN \| i = SETJMP\(env\);.*\n \| \| \^~~~~~\n \| \| \|.*\n \| \| \(5\) \.\.\.to 'setjmp' \(saved at \(1\)\).*\n \|.*\n 'test_2': events 6-8.*\n \|.*\n \| NN \| if \(i != 0\).*\n \| \| \^\n \| \| \|.*\n \| \| \(6\) following 'true' branch \(when 'i != 0'\)\.\.\..*\n \| NN \| \{.*\n \| NN \| foo \(2\);.*\n \| \| ~~~~~~~\n \| \| \|.*\n \| \| \(7\) \.\.\.to here.*\n \| NN \| __analyzer_dump_path \(\);.*\n \| \| ~~~~~~~~~~~~~~~~~~~~~~~\n \| \| \|.*\n \| \| \(8\) here.*\n \|.*\n" Executing on host: /home/seurer/gcc/git/build/gcc-test/gcc/xgcc -B/home/seurer/gcc/git/build/gcc-test/gcc/ exceptions_enabled98668.cc -fdiagnostics-plain-output -S -o exceptions_enabled98668.s (timeout = 300) spawn -ignore SIGHUP /home/seurer/gcc/git/build/gcc-test/gcc/xgcc -B/home/seurer/gcc/git/build/gcc-test/gcc/ exceptions_enabled98668.cc -fdiagnostics-plain-output -S -o exceptions_enabled98668.s FAIL: gcc.dg/analyzer/setjmp-2.c (test for excess errors) Excess errors: NN | extern int setjmp(jmp_buf env); | ^~~~~~ NN | extern void longjmp(jmp_buf env, int val); | ^~~~~~~ commit e9e2bad7251477db92ab9ebcdc010f9282dd9890 Author: Martin Sebor <mse...@redhat.com> Date: Thu Jun 24 19:22:06 2021 -0600 middle-end: add support for per-location warning groups.