1 /* This testcase is part of GDB, the GNU debugger. 2 3 Copyright 2018-2020 Free Software Foundation, Inc. 4 5 This program is free software; you can redistribute it and/or modify 6 it under the terms of the GNU General Public License as published by 7 the Free Software Foundation; either version 3 of the License, or 8 (at your option) any later version. 9 10 This program is distributed in the hope that it will be useful, 11 but WITHOUT ANY WARRANTY; without even the implied warranty of 12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 GNU General Public License for more details. 14 15 You should have received a copy of the GNU General Public License 16 along with this program. If not, see <http://www.gnu.org/licenses/>. */ 17 18 /* The version of this test-case with f1 tagged with noinline only is equivalent 19 to gcc/testsuite/gcc.dg/guality/vla-1.c. */ 20 21 int 22 #ifdef NOCLONE 23 __attribute__((noinline, noclone)) 24 #else 25 __attribute__((noinline)) 26 #endif 27 f1 (int i) 28 { 29 char a[i + 1]; 30 a[0] = 5; 31 return a[0]; 32 } 33 34 int 35 main (void) 36 { 37 volatile int j; 38 int i = 5; 39 asm volatile ("" : "=r" (i) : "0" (i)); 40 j = f1 (i); 41 return 0; 42 } 43