source: EcnlProtoTool/trunk/tcc-0.9.27/tests/tests2/78_vla_label.c@ 331

Last change on this file since 331 was 331, checked in by coas-nagasima, 6 years ago

prototoolに関連するプロジェクトをnewlibからmuslを使うよう変更・更新
ntshellをnewlibの下位の実装から、muslのsyscallの実装に変更・更新
以下のOSSをアップデート
・mruby-1.3.0
・musl-1.1.18
・onigmo-6.1.3
・tcc-0.9.27
以下のOSSを追加
・openssl-1.1.0e
・curl-7.57.0
・zlib-1.2.11
以下のmrbgemsを追加
・iij/mruby-digest
・iij/mruby-env
・iij/mruby-errno
・iij/mruby-iijson
・iij/mruby-ipaddr
・iij/mruby-mock
・iij/mruby-require
・iij/mruby-tls-openssl

  • Property svn:eol-style set to native
  • Property svn:mime-type set to text/x-csrc
File size: 761 bytes
Line 
1#include <stdio.h>
2
3/* This test segfaults as of April 27, 2015. */
4void f1(int argc)
5{
6 char test[argc];
7 if(0)
8 label:
9 printf("boom!\n");
10 if(argc-- == 0)
11 return;
12 goto label;
13}
14
15/* This segfaulted on 2015-11-19. */
16void f2(void)
17{
18 goto start;
19 {
20 int a[1 && 1]; /* not a variable-length array */
21 int b[1 || 1]; /* not a variable-length array */
22 int c[1 ? 1 : 1]; /* not a variable-length array */
23 start:
24 a[0] = 0;
25 b[0] = 0;
26 c[0] = 0;
27 }
28}
29
30void f3(void)
31{
32 printf("%d\n", 0 ? printf("x1\n") : 11);
33 printf("%d\n", 1 ? 12 : printf("x2\n"));
34 printf("%d\n", 0 && printf("x3\n"));
35 printf("%d\n", 1 || printf("x4\n"));
36}
37
38int main()
39{
40 f1(2);
41 f2();
42 f3();
43
44 return 0;
45}
Note: See TracBrowser for help on using the repository browser.