linux/tools/perf/tests/clang.c
<<
>>
Prefs
   1// SPDX-License-Identifier: GPL-2.0
   2#include "tests.h"
   3#include "c++/clang-c.h"
   4#include <linux/kernel.h>
   5
   6static 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
  22int test__clang_subtest_get_nr(void)
  23{
  24        return (int)ARRAY_SIZE(clang_testcase_table);
  25}
  26
  27const 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
  35int test__clang(struct test *test __maybe_unused, int i __maybe_unused)
  36{
  37        return TEST_SKIP;
  38}
  39#else
  40int 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
  47