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