Skip several analyzer socket tests on hppa*-*-hpux*
[official-gcc.git] / gcc / testsuite / c-c++-common / analyzer / setjmp-5.c
blob3133a473d51aa799500ea6856d411547b7b49c07
1 /* { dg-additional-options "-fdiagnostics-show-line-numbers -fdiagnostics-path-format=inline-events -fdiagnostics-show-caret" } */
2 /* { dg-enable-nn-line-numbers "" } */
3 /* { dg-require-effective-target indirect_jumps } */
5 #include "../../gcc.dg/analyzer/test-setjmp.h"
6 #include <stddef.h>
7 #include "../../gcc.dg/analyzer/analyzer-decls.h"
9 static jmp_buf env;
11 static void inner (void)
13 SETJMP (env);
16 void outer (void)
18 int i;
20 inner ();
22 longjmp (env, 42); /* { dg-warning "'longjmp' called after enclosing function of 'setjmp' has returned" } */
25 /* { dg-begin-multiline-output "" }
26 NN | longjmp (env, 42);
27 | ^~~~~~~~~~~~~~~~~
28 'outer': events 1-2
30 | NN | void outer (void)
31 | | ^~~~~
32 | | |
33 | | (1) entry to 'outer'
34 |......
35 | NN | inner ();
36 | | ~~~~~~~~
37 | | |
38 | | (2) calling 'inner' from 'outer'
40 +--> 'inner': event 3
42 | NN | static void inner (void)
43 | | ^~~~~
44 | | |
45 | | (3) entry to 'inner'
47 'inner': event 4
49 | NN | SETJMP (env);
50 | | ^~~~~~
51 | | |
52 | | (4) 'setjmp' called here
54 'inner': event 5
56 | NN | }
57 | | ^
58 | | |
59 | | (5) stack frame is popped here, invalidating saved environment
61 <------+
63 'outer': events 6-7
65 | NN | inner ();
66 | | ^~~~~~~~
67 | | |
68 | | (6) returning to 'outer' from 'inner'
69 | NN |
70 | NN | longjmp (env, 42);
71 | | ~~~~~~~~~~~~~~~~~
72 | | |
73 | | (7) 'longjmp' called after enclosing function of 'setjmp' returned at (5)
75 { dg-end-multiline-output "" { target c } } */
76 /* { dg-begin-multiline-output "" }
77 NN | longjmp (env, 42);
78 | ~~~~~~~~^~~~~~~~~
79 'void outer()': events 1-2
81 | NN | void outer (void)
82 | | ^~~~~
83 | | |
84 | | (1) entry to 'outer'
85 |......
86 | NN | inner ();
87 | | ~~~~~~~~
88 | | |
89 | | (2) calling 'inner' from 'outer'
91 +--> 'void inner()': event 3
93 | NN | static void inner (void)
94 | | ^~~~~
95 | | |
96 | | (3) entry to 'inner'
98 'void inner()': event 4
100 | NN | SETJMP (env);
101 | | ^~~~~~
102 | | |
103 | | (4) 'setjmp' called here
105 'void inner()': event 5
107 | NN | }
108 | | ^
109 | | |
110 | | (5) stack frame is popped here, invalidating saved environment
112 <------+
114 'void outer()': events 6-7
116 | NN | inner ();
117 | | ~~~~~~^~
118 | | |
119 | | (6) returning to 'outer' from 'inner'
120 | NN |
121 | NN | longjmp (env, 42);
122 | | ~~~~~~~~~~~~~~~~~
123 | | |
124 | | (7) 'longjmp' called after enclosing function of 'setjmp' returned at (5)
126 { dg-end-multiline-output "" { target c++ } } */