Linux 5.1.15
[linux/fpc-iii.git] / tools / perf / tests / clang.c
blobf45fe11dcf509582f99b62c8b2fb98fa52f978fb
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>
8 static struct {
9 int (*func)(void);
10 const char *desc;
11 } clang_testcase_table[] = {
12 #ifdef HAVE_LIBCLANGLLVM_SUPPORT
14 .func = test__clang_to_IR,
15 .desc = "builtin clang compile C source to IR",
18 .func = test__clang_to_obj,
19 .desc = "builtin clang compile C source to ELF object",
21 #endif
24 int test__clang_subtest_get_nr(void)
26 return (int)ARRAY_SIZE(clang_testcase_table);
29 const char *test__clang_subtest_get_desc(int i)
31 if (i < 0 || i >= (int)ARRAY_SIZE(clang_testcase_table))
32 return NULL;
33 return clang_testcase_table[i].desc;
36 #ifndef HAVE_LIBCLANGLLVM_SUPPORT
37 int test__clang(struct test *test __maybe_unused, int i __maybe_unused)
39 return TEST_SKIP;
41 #else
42 int test__clang(struct test *test __maybe_unused, int i)
44 if (i < 0 || i >= (int)ARRAY_SIZE(clang_testcase_table))
45 return TEST_FAIL;
46 return clang_testcase_table[i].func();
48 #endif