X-Git-Url: https://git.lttng.org/?a=blobdiff_plain;f=tests%2Futils%2Ftestapp%2Fgen-syscall-events-callstack%2Fgen-syscall-events-callstack.c;h=c7340cb140e24335cd75b597152bc00abc4c4787;hb=9d16b343fb9e781fc8d8fa3c448a3f382306dd33;hp=48210fab07008553775f08522d0d4b9d7f996162;hpb=591ee332c58988222f58c6eadb047890707e7a35;p=lttng-tools.git diff --git a/tests/utils/testapp/gen-syscall-events-callstack/gen-syscall-events-callstack.c b/tests/utils/testapp/gen-syscall-events-callstack/gen-syscall-events-callstack.c index 48210fab0..c7340cb14 100644 --- a/tests/utils/testapp/gen-syscall-events-callstack/gen-syscall-events-callstack.c +++ b/tests/utils/testapp/gen-syscall-events-callstack/gen-syscall-events-callstack.c @@ -1,18 +1,8 @@ /* - * Copyright (C) - 2017 Francis Deslauriers + * Copyright (C) 2017 Francis Deslauriers * - * This library is free software; you can redistribute it and/or modify it - * under the terms of the GNU Lesser General Public License as published by the - * Free Software Foundation; version 2.1 of the License. + * SPDX-License-Identifier: LGPL-2.1-only * - * This library is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License - * for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this library; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ #include @@ -34,9 +24,16 @@ * events generated by our test process only. */ +#if defined(__clang__) +#define nooptimization __attribute__((noinline)) __attribute__((optnone)) +#else +#define nooptimization __attribute__((noinline)) __attribute__((optimize(0))) +#endif + volatile int val = 0; -long __attribute__ ((noinline)) +long nooptimization my_gettid(void); +long nooptimization my_gettid(void) { long ret; @@ -62,20 +59,23 @@ my_gettid(void) return ret; } -int __attribute__ ((noinline)) +int nooptimization fct_c(void); +int nooptimization fct_c(void) { return my_gettid(); } -int __attribute__ ((noinline)) +int nooptimization fct_b(void); +int nooptimization fct_b(void) { val += fct_c(); return val; } -int __attribute__ ((noinline)) +int nooptimization fct_a(void); +int nooptimization fct_a(void) { val += fct_b();