/* { dg-do compile } */ /* { dg-options "-fdump-tree-optimized" } */ /* { dg-skip-if "" { *-*-* } { "-fno-fat-lto-objects" } { "" } } */ /* { dg-skip-if "" { *-*-* } { "-O0" } { "" } } */ /* { dg-require-effective-target indirect_jumps } */ struct __jmp_buf_tag {}; typedef struct __jmp_buf_tag jmp_buf[1]; extern int _setjmp (struct __jmp_buf_tag __env[1]); jmp_buf g_return_jmp_buf; static void SetNaClSwitchExpectations (void) { __builtin_longjmp (g_return_jmp_buf, 1); } void TestSyscall(void) { SetNaClSwitchExpectations(); _setjmp (g_return_jmp_buf); } /* sizeof g_return_jmp_buf is zero size but it's being passed to a function declared to take an array of one element which might trigger a warning. Prune it out: { dg-prune-output "-Wstringop-overflow" } */ /* { dg-final { scan-tree-dump-not "setjmp" "optimized" } } */