Clean-up: modernize pretty_xml.cpp
[lttng-tools.git] / tests / utils / testapp / gen-syscall-events-callstack / gen-syscall-events-callstack.c
index 48210fab07008553775f08522d0d4b9d7f996162..bee03a42ce2148e0fdb72476eea0d37c5478c367 100644 (file)
@@ -1,20 +1,12 @@
 /*
- * Copyright (C) 2017 Francis Deslauriers <francis.deslauriers@efficios.com>
+ * Copyright (C) 2017 Francis Deslauriers <francis.deslauriers@efficios.com>
  *
- * 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 "utils.h"
+
 #include <fcntl.h>
 #include <signal.h>
 #include <stdbool.h>
@@ -25,8 +17,6 @@
 #include <sys/types.h>
 #include <unistd.h>
 
-#include "utils.h"
-
 /**
  * The process waits for the creation of a file passed as argument from an
  * external processes to execute a syscall and exiting. This is useful for tests
  * 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))
-my_gettid(void)
+long nooptimization my_gettid(void);
+long nooptimization my_gettid(void)
 {
-    long ret;
+       long ret;
 #ifdef __x86_64
-    asm volatile
-    (
-        "syscall"
-        : "=a" (ret)
-        : "0"(__NR_gettid)
-        : "cc", "rcx", "r11", "memory"
-    );
-#elif __i386
-    asm volatile
-    (
-        "int $0x80"
-        : "=a" (ret)
-        : "0"(__NR_gettid)
-        : "cc", "edi", "esi", "memory"
-    );
+       asm volatile("syscall" : "=a"(ret) : "0"(__NR_gettid) : "cc", "rcx", "r11", "memory");
+#elif defined(__i386)
+       asm volatile("int $0x80" : "=a"(ret) : "0"(__NR_gettid) : "cc", "edi", "esi", "memory");
 #else
 #error "Userspace callstack test not supported for this architecture."
 #endif
-    return ret;
+       return ret;
 }
 
-int __attribute__ ((noinline))
-fct_c(void)
+int nooptimization fct_c(void);
+int nooptimization fct_c(void)
 {
        return my_gettid();
 }
 
-int __attribute__ ((noinline))
-fct_b(void)
+int nooptimization fct_b(void);
+int nooptimization fct_b(void)
 {
        val += fct_c();
        return val;
 }
 
-int __attribute__ ((noinline))
-fct_a(void)
+int nooptimization fct_a(void);
+int nooptimization fct_a(void)
 {
        val += fct_b();
        return val;
This page took 0.025214 seconds and 4 git commands to generate.