12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- // SPDX-License-Identifier: GPL-2.0
- #include "tests.h"
- #include "debug.h"
- #include "util.h"
- #include "c++/clang-c.h"
- #include <linux/kernel.h>
- static struct {
- int (*func)(void);
- const char *desc;
- } clang_testcase_table[] = {
- #ifdef HAVE_LIBCLANGLLVM_SUPPORT
- {
- .func = test__clang_to_IR,
- .desc = "builtin clang compile C source to IR",
- },
- {
- .func = test__clang_to_obj,
- .desc = "builtin clang compile C source to ELF object",
- },
- #endif
- };
- int test__clang_subtest_get_nr(void)
- {
- return (int)ARRAY_SIZE(clang_testcase_table);
- }
- const char *test__clang_subtest_get_desc(int i)
- {
- if (i < 0 || i >= (int)ARRAY_SIZE(clang_testcase_table))
- return NULL;
- return clang_testcase_table[i].desc;
- }
- #ifndef HAVE_LIBCLANGLLVM_SUPPORT
- int test__clang(struct test *test __maybe_unused, int i __maybe_unused)
- {
- return TEST_SKIP;
- }
- #else
- int test__clang(struct test *test __maybe_unused, int i)
- {
- if (i < 0 || i >= (int)ARRAY_SIZE(clang_testcase_table))
- return TEST_FAIL;
- return clang_testcase_table[i].func();
- }
- #endif
|