annotate gcc/testsuite/gcc.dg/pr49243.c @ 158:494b0b89df80 default tip

...
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Mon, 25 May 2020 18:13:55 +0900
parents 04ced10e8804
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
111
kono
parents:
diff changeset
1 /* PR tree-optimization/49243 */
kono
parents:
diff changeset
2 /* { dg-do compile } */
kono
parents:
diff changeset
3 /* { dg-options "-O2 -Winline" } */
kono
parents:
diff changeset
4
kono
parents:
diff changeset
5 extern unsigned long jb[];
kono
parents:
diff changeset
6 extern int my_setjmp(unsigned long jb[]) __attribute__((returns_twice));
kono
parents:
diff changeset
7 extern int decode(const char*);
kono
parents:
diff changeset
8
kono
parents:
diff changeset
9 static inline int wrapper(const char **s_ptr) /* { dg-warning "(inlining failed|function 'wrapper' can never be inlined because it uses setjmp)" } */
kono
parents:
diff changeset
10 {
kono
parents:
diff changeset
11 if (my_setjmp(jb) == 0) {
kono
parents:
diff changeset
12 const char *s = *s_ptr;
kono
parents:
diff changeset
13 while (decode(s) != 0)
kono
parents:
diff changeset
14 *s_ptr = ++s;
kono
parents:
diff changeset
15 return 0;
kono
parents:
diff changeset
16 } else
kono
parents:
diff changeset
17 return -1;
kono
parents:
diff changeset
18 }
kono
parents:
diff changeset
19
kono
parents:
diff changeset
20 void parse(const char *data)
kono
parents:
diff changeset
21 {
kono
parents:
diff changeset
22 const char *s = data;
kono
parents:
diff changeset
23 if (!(wrapper(&s) == -1 && (s - data) == 1)) /* { dg-message "called from here" } */
kono
parents:
diff changeset
24 __builtin_abort();
kono
parents:
diff changeset
25 }