Re: [PATCH] libfdt.h: add explicit cast from void* to uint8_t* in fdt(32|64)_st

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]



On Tue, Sep 10, 2019 at 12:48:24PM +0200, Luc Michel wrote:
> Including libfdt.h in a C++ project fails during compilation with recent
> version of GCC or Clang.
> 
> This simple example:
> 
> extern "C" {
>  #include <libfdt.h>
> }
> 
> int main(void) { return 0; }
> 
> leads to the following errors with GCC 9.1.0:
> 
> /usr/include/libfdt.h: In function ‘void fdt32_st(void*, uint32_t)’:
> /usr/include/libfdt.h:139:16: error: invalid conversion from ‘void*’ to ‘uint8_t*’ {aka ‘unsigned char*’} [-fpermissive]
>   139 |  uint8_t *bp = property;
>       |                ^~~~~~~~
>       |                |
>       |                void*
> /usr/include/libfdt.h: In function ‘void fdt64_st(void*, uint64_t)’:
> /usr/include/libfdt.h:163:16: error: invalid conversion from ‘void*’ to ‘uint8_t*’ {aka ‘unsigned char*’} [-fpermissive]
>   163 |  uint8_t *bp = property;
>       |                ^~~~~~~~
>       |                |
>       |                void*
> 
> This commit adds an explicit cast to uint8_t* to fix this issue.
> 
> Signed-off-by: Luc Michel <luc.michel@xxxxxxxxxxxxx>

Applied, thanks

> ---
>  libfdt/libfdt.h | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/libfdt/libfdt.h b/libfdt/libfdt.h
> index 8037f39..fc4c496 100644
> --- a/libfdt/libfdt.h
> +++ b/libfdt/libfdt.h
> @@ -136,7 +136,7 @@ static inline uint32_t fdt32_ld(const fdt32_t *p)
>  
>  static inline void fdt32_st(void *property, uint32_t value)
>  {
> -	uint8_t *bp = property;
> +	uint8_t *bp = (uint8_t *)property;
>  
>  	bp[0] = value >> 24;
>  	bp[1] = (value >> 16) & 0xff;
> @@ -160,7 +160,7 @@ static inline uint64_t fdt64_ld(const fdt64_t *p)
>  
>  static inline void fdt64_st(void *property, uint64_t value)
>  {
> -	uint8_t *bp = property;
> +	uint8_t *bp = (uint8_t *)property;
>  
>  	bp[0] = value >> 56;
>  	bp[1] = (value >> 48) & 0xff;

-- 
David Gibson			| I'll have my music baroque, and my code
david AT gibson.dropbear.id.au	| minimalist, thank you.  NOT _the_ _other_
				| _way_ _around_!
http://www.ozlabs.org/~dgibson

Attachment: signature.asc
Description: PGP signature


[Index of Archives]     [Device Tree]     [Device Tree Spec]     [Linux Driver Backports]     [Video for Linux]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]

  Powered by Linux