LCOV - code coverage report
Current view: top level - zephyr/toolchain - zephyr_stdint.h Hit Total Coverage
Test: new.info Lines: 0 1 0.0 %
Date: 2024-12-22 00:14:23

          Line data    Source code
       1           0 : /*
       2             :  * Copyright (c) 2019 BayLibre SAS
       3             :  *
       4             :  * SPDX-License-Identifier: Apache-2.0
       5             :  */
       6             : 
       7             : #ifndef ZEPHYR_INCLUDE_TOOLCHAIN_STDINT_H_
       8             : #define ZEPHYR_INCLUDE_TOOLCHAIN_STDINT_H_
       9             : 
      10             : /*
      11             :  * Some gcc versions and/or configurations as found in the Zephyr SDK
      12             :  * (questionably) define __INT32_TYPE__ and derivatives as a long int
      13             :  * which makes the printf format checker to complain about long vs int
      14             :  * mismatch when %u is given a uint32_t argument, and uint32_t pointers not
      15             :  * being compatible with int pointers. Let's redefine them to follow
      16             :  * common expectations and usage.
      17             :  */
      18             : 
      19             : #if __SIZEOF_INT__ != 4
      20             : #error "unexpected int width"
      21             : #endif
      22             : 
      23             : #undef __INT32_TYPE__
      24             : #undef __UINT32_TYPE__
      25             : #undef __INT_FAST32_TYPE__
      26             : #undef __UINT_FAST32_TYPE__
      27             : #undef __INT_LEAST32_TYPE__
      28             : #undef __UINT_LEAST32_TYPE__
      29             : #undef __INT64_TYPE__
      30             : #undef __UINT64_TYPE__
      31             : #undef __INT_FAST64_TYPE__
      32             : #undef __UINT_FAST64_TYPE__
      33             : #undef __INT_LEAST64_TYPE__
      34             : #undef __UINT_LEAST64_TYPE__
      35             : 
      36             : #define __INT32_TYPE__ int
      37             : #define __UINT32_TYPE__ unsigned int
      38             : #define __INT_FAST32_TYPE__ __INT32_TYPE__
      39             : #define __UINT_FAST32_TYPE__ __UINT32_TYPE__
      40             : #define __INT_LEAST32_TYPE__ __INT32_TYPE__
      41             : #define __UINT_LEAST32_TYPE__ __UINT32_TYPE__
      42             : #define __INT64_TYPE__ long long int
      43             : #define __UINT64_TYPE__ unsigned long long int
      44             : #define __INT_FAST64_TYPE__ __INT64_TYPE__
      45             : #define __UINT_FAST64_TYPE__ __UINT64_TYPE__
      46             : #define __INT_LEAST64_TYPE__ __INT64_TYPE__
      47             : #define __UINT_LEAST64_TYPE__ __UINT64_TYPE__
      48             : 
      49             : /*
      50             :  * The confusion also exists with __INTPTR_TYPE__ which is either an int
      51             :  * (even when __INT32_TYPE__ is a long int) or a long int. Let's redefine
      52             :  * it to a long int to get some uniformity. Doing so also makes it compatible
      53             :  * with LP64 (64-bit) targets where a long is always 64-bit wide.
      54             :  */
      55             : 
      56             : #if __SIZEOF_POINTER__ != __SIZEOF_LONG__
      57             : #error "unexpected size difference between pointers and long ints"
      58             : #endif
      59             : 
      60             : #undef __INTPTR_TYPE__
      61             : #undef __UINTPTR_TYPE__
      62             : #define __INTPTR_TYPE__ long int
      63             : #define __UINTPTR_TYPE__ long unsigned int
      64             : 
      65             : /*
      66             :  * Re-define the INTN_C(value) integer constant expression macros to match the
      67             :  * integer types re-defined above.
      68             :  */
      69             : 
      70             : #undef __INT32_C
      71             : #undef __UINT32_C
      72             : #undef __INT64_C
      73             : #undef __UINT64_C
      74             : #define __INT32_C(c) c
      75             : #define __UINT32_C(c) c ## U
      76             : #define __INT64_C(c) c ## LL
      77             : #define __UINT64_C(c) c ## ULL
      78             : 
      79             : #endif /* ZEPHYR_INCLUDE_TOOLCHAIN_STDINT_H_ */

Generated by: LCOV version 1.14