1 /* Copyright 2024 Free Software Foundation, Inc. 2 3 This program is free software; you can redistribute it and/or modify 4 it under the terms of the GNU General Public License as published by 5 the Free Software Foundation; either version 3 of the License, or 6 (at your option) any later version. 7 8 This program is distributed in the hope that it will be useful, 9 but WITHOUT ANY WARRANTY; without even the implied warranty of 10 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 GNU General Public License for more details. 12 13 You should have received a copy of the GNU General Public License 14 along with this program. If not, see <http://www.gnu.org/licenses/>. */ 15 16 #include "attributes.h" 17 18 volatile int global = 0; 19 20 __attribute__((noinline)) ATTRIBUTE_NOCLONE void 21 foo (int arg) 22 { 23 global += arg; 24 } 25 26 inline __attribute__((always_inline)) int 27 bar (int val) 28 { 29 if (global == val) 30 return 1; 31 foo (1); 32 return 1; 33 } 34 35 int 36 main (void) 37 { 38 if ((global && bar (1)) || bar (2)) 39 return 0; 40 return 1; 41 } 42