root/tools/perf/tests/clang.c

/* [<][>][^][v][top][bottom][index][help] */

DEFINITIONS

This source file includes following definitions.
  1. test__clang_subtest_get_nr
  2. test__clang_subtest_get_desc
  3. test__clang
  4. test__clang

   1 // SPDX-License-Identifier: GPL-2.0
   2 #include "tests.h"
   3 #include "c++/clang-c.h"
   4 #include <linux/kernel.h>
   5 
   6 static struct {
   7         int (*func)(void);
   8         const char *desc;
   9 } clang_testcase_table[] = {
  10 #ifdef HAVE_LIBCLANGLLVM_SUPPORT
  11         {
  12                 .func = test__clang_to_IR,
  13                 .desc = "builtin clang compile C source to IR",
  14         },
  15         {
  16                 .func = test__clang_to_obj,
  17                 .desc = "builtin clang compile C source to ELF object",
  18         },
  19 #endif
  20 };
  21 
  22 int test__clang_subtest_get_nr(void)
  23 {
  24         return (int)ARRAY_SIZE(clang_testcase_table);
  25 }
  26 
  27 const char *test__clang_subtest_get_desc(int i)
  28 {
  29         if (i < 0 || i >= (int)ARRAY_SIZE(clang_testcase_table))
  30                 return NULL;
  31         return clang_testcase_table[i].desc;
  32 }
  33 
  34 #ifndef HAVE_LIBCLANGLLVM_SUPPORT
  35 int test__clang(struct test *test __maybe_unused, int i __maybe_unused)
  36 {
  37         return TEST_SKIP;
  38 }
  39 #else
  40 int test__clang(struct test *test __maybe_unused, int i)
  41 {
  42         if (i < 0 || i >= (int)ARRAY_SIZE(clang_testcase_table))
  43                 return TEST_FAIL;
  44         return clang_testcase_table[i].func();
  45 }
  46 #endif

/* [<][>][^][v][top][bottom][index][help] */