LCOV - code coverage report
Current view: top level - zephyr/toolchain - llvm.h Coverage Total Hit
Test: new.info Lines: 0.0 % 8 0
Test Date: 2025-09-25 19:22:35

            Line data    Source code
       1            0 : /*
       2              :  * Copyright (c) 2021 Intel Corporation.
       3              :  *
       4              :  * SPDX-License-Identifier: Apache-2.0
       5              :  */
       6              : 
       7              : #ifndef ZEPHYR_INCLUDE_TOOLCHAIN_LLVM_H_
       8              : #define ZEPHYR_INCLUDE_TOOLCHAIN_LLVM_H_
       9              : 
      10              : #ifndef ZEPHYR_INCLUDE_TOOLCHAIN_H_
      11              : #error Please do not include toolchain-specific headers directly, use <zephyr/toolchain.h> instead
      12              : #endif
      13              : 
      14              : #define __no_optimization __attribute__((optnone))
      15              : 
      16              : #ifndef __fallthrough
      17              : #if __clang_major__ >= 10
      18              : #define __fallthrough __attribute__((fallthrough))
      19              : #endif
      20              : #endif
      21              : 
      22            0 : #define TOOLCHAIN_CLANG_VERSION \
      23              :         ((__clang_major__ * 10000) + (__clang_minor__ * 100) + \
      24              :           __clang_patchlevel__)
      25              : 
      26            0 : #define TOOLCHAIN_HAS_PRAGMA_DIAG 1
      27              : 
      28              : #if TOOLCHAIN_CLANG_VERSION >= 30800
      29              : #define TOOLCHAIN_HAS_C_GENERIC 1
      30              : #define TOOLCHAIN_HAS_C_AUTO_TYPE 1
      31              : #endif
      32              : 
      33              : #include <zephyr/toolchain/gcc.h>
      34              : 
      35              : /* clear out common version. The build assert assert from gcc.h is defined to be empty */
      36              : #undef BUILD_ASSERT
      37              : 
      38              : #if defined(__cplusplus) && (__cplusplus >= 201103L)
      39              : 
      40              : /* C++11 has static_assert built in */
      41              : #define BUILD_ASSERT(EXPR, MSG...) static_assert(EXPR, "" MSG)
      42              : 
      43              : #elif !defined(__cplusplus) && ((__STDC_VERSION__) >= 201100)
      44              : 
      45              : /* C11 has static_assert built in */
      46              : #define BUILD_ASSERT(EXPR, MSG...) _Static_assert((EXPR), "" MSG)
      47              : 
      48              : #else
      49              : 
      50              : /* Rely on that the C-library provides a static assertion function */
      51            0 : #define BUILD_ASSERT(EXPR, MSG...) _Static_assert((EXPR), "" MSG)
      52              : 
      53              : #endif
      54              : 
      55            0 : #define TOOLCHAIN_WARNING_SIZEOF_ARRAY_DECAY            "-Wsizeof-array-decay"
      56            0 : #define TOOLCHAIN_WARNING_UNNEEDED_INTERNAL_DECLARATION "-Wunneeded-internal-declaration"
      57              : 
      58            0 : #define TOOLCHAIN_DISABLE_CLANG_WARNING(warning) _TOOLCHAIN_DISABLE_WARNING(clang, warning)
      59            0 : #define TOOLCHAIN_ENABLE_CLANG_WARNING(warning)  _TOOLCHAIN_ENABLE_WARNING(clang, warning)
      60              : 
      61              : /*
      62              :  * Provide these definitions only when minimal libc is used.
      63              :  * Avoid collision with defines from include/zephyr/toolchain/zephyr_stdint.h
      64              :  */
      65              : #ifdef CONFIG_MINIMAL_LIBC
      66              : 
      67              : /*
      68              :  * Predefined __INTN_C/__UINTN_C macros are provided by clang starting in version 20.1.
      69              :  * Avoid redefining these macros if a sufficiently modern clang is being used.
      70              :  */
      71              : #if TOOLCHAIN_CLANG_VERSION < 200100
      72              : 
      73              : #define __int_c(v, suffix) v ## suffix
      74              : #define int_c(v, suffix) __int_c(v, suffix)
      75              : #define uint_c(v, suffix) __int_c(v ## U, suffix)
      76              : 
      77              : #ifndef CONFIG_ENFORCE_ZEPHYR_STDINT
      78              : 
      79              : #ifdef __INT64_TYPE__
      80              : #undef __int_least64_c_suffix__
      81              : #undef __int_least32_c_suffix__
      82              : #undef __int_least16_c_suffix__
      83              : #undef __int_least8_c_suffix__
      84              : #ifdef __INT64_C_SUFFIX__
      85              : #define __int_least64_c_suffix__ __INT64_C_SUFFIX__
      86              : #define __int_least32_c_suffix__ __INT64_C_SUFFIX__
      87              : #define __int_least16_c_suffix__ __INT64_C_SUFFIX__
      88              : #define __int_least8_c_suffix__ __INT64_C_SUFFIX__
      89              : #endif /* __INT64_C_SUFFIX__ */
      90              : #endif /* __INT64_TYPE__ */
      91              : 
      92              : #ifdef __INT_LEAST64_TYPE__
      93              : #ifdef __int_least64_c_suffix__
      94              : #define __INT64_C(x)    int_c(x, __int_least64_c_suffix__)
      95              : #define __UINT64_C(x)   uint_c(x, __int_least64_c_suffix__)
      96              : #else
      97              : #define __INT64_C(x)    x
      98              : #define __UINT64_C(x)   x ## U
      99              : #endif /* __int_least64_c_suffix__ */
     100              : #endif /* __INT_LEAST64_TYPE__ */
     101              : 
     102              : #ifdef __INT32_TYPE__
     103              : #undef __int_least32_c_suffix__
     104              : #undef __int_least16_c_suffix__
     105              : #undef __int_least8_c_suffix__
     106              : #ifdef __INT32_C_SUFFIX__
     107              : #define __int_least32_c_suffix__ __INT32_C_SUFFIX__
     108              : #define __int_least16_c_suffix__ __INT32_C_SUFFIX__
     109              : #define __int_least8_c_suffix__ __INT32_C_SUFFIX__
     110              : #endif /* __INT32_C_SUFFIX__ */
     111              : #endif /* __INT32_TYPE__ */
     112              : 
     113              : #ifdef __INT_LEAST32_TYPE__
     114              : #ifdef __int_least32_c_suffix__
     115              : #define __INT32_C(x)    int_c(x, __int_least32_c_suffix__)
     116              : #define __UINT32_C(x)   uint_c(x, __int_least32_c_suffix__)
     117              : #else
     118              : #define __INT32_C(x)    x
     119              : #define __UINT32_C(x)   x ## U
     120              : #endif /* __int_least32_c_suffix__ */
     121              : #endif /* __INT_LEAST32_TYPE__ */
     122              : 
     123              : #endif /* !CONFIG_ENFORCE_ZEPHYR_STDINT */
     124              : 
     125              : #ifdef __INT16_TYPE__
     126              : #undef __int_least16_c_suffix__
     127              : #undef __int_least8_c_suffix__
     128              : #ifdef __INT16_C_SUFFIX__
     129              : #define __int_least16_c_suffix__ __INT16_C_SUFFIX__
     130              : #define __int_least8_c_suffix__ __INT16_C_SUFFIX__
     131              : #endif /* __INT16_C_SUFFIX__ */
     132              : #endif /* __INT16_TYPE__ */
     133              : 
     134              : #ifdef __INT_LEAST16_TYPE__
     135              : #ifdef __int_least16_c_suffix__
     136              : #define __INT16_C(x)    int_c(x, __int_least16_c_suffix__)
     137              : #define __UINT16_C(x)   uint_c(x, __int_least16_c_suffix__)
     138              : #else
     139              : #define __INT16_C(x)    x
     140              : #define __UINT16_C(x)   x ## U
     141              : #endif /* __int_least16_c_suffix__ */
     142              : #endif /* __INT_LEAST16_TYPE__ */
     143              : 
     144              : #ifdef __INT8_TYPE__
     145              : #undef __int_least8_c_suffix__
     146              : #ifdef __INT8_C_SUFFIX__
     147              : #define __int_least8_c_suffix__ __INT8_C_SUFFIX__
     148              : #endif /* __INT8_C_SUFFIX__ */
     149              : #endif /* __INT8_TYPE__ */
     150              : 
     151              : #ifdef __INT_LEAST8_TYPE__
     152              : #ifdef __int_least8_c_suffix__
     153              : #define __INT8_C(x)     int_c(x, __int_least8_c_suffix__)
     154              : #define __UINT8_C(x)    uint_c(x, __int_least8_c_suffix__)
     155              : #else
     156              : #define __INT8_C(x)     x
     157              : #define __UINT8_C(x)    x ## U
     158              : #endif /* __int_least8_c_suffix__ */
     159              : #endif /* __INT_LEAST8_TYPE__ */
     160              : 
     161              : #define __INTMAX_C(x)   int_c(x, __INTMAX_C_SUFFIX__)
     162              : #define __UINTMAX_C(x)  int_c(x, __UINTMAX_C_SUFFIX__)
     163              : 
     164              : #endif /* TOOLCHAIN_CLANG_VERSION < 200100 */
     165              : 
     166              : #endif /* CONFIG_MINIMAL_LIBC */
     167              : 
     168              : #endif /* ZEPHYR_INCLUDE_TOOLCHAIN_LLVM_H_ */
        

Generated by: LCOV version 2.0-1