diff options
author | Jason A. Donenfeld <Jason@zx2c4.com> | 2020-02-07 15:46:59 +0100 |
---|---|---|
committer | Jason A. Donenfeld <Jason@zx2c4.com> | 2020-02-07 15:46:59 +0100 |
commit | d68b8b189c2671c261d0e49b02eaf2b86b5947fa (patch) | |
tree | ab513f11acb195b1ac0f0fe282707b17a7082b77 /src/curve25519.c | |
parent | netlink: initialize mostly unused field (diff) | |
download | wireguard-tools-d68b8b189c2671c261d0e49b02eaf2b86b5947fa.tar.xz wireguard-tools-d68b8b189c2671c261d0e49b02eaf2b86b5947fa.zip |
curve25519: squelch warnings on clang
These are generic helper functions we don't want to move into the actual
implementations, so that it's easy to keep parity with the kernel code.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
Diffstat (limited to 'src/curve25519.c')
-rw-r--r-- | src/curve25519.c | 34 |
1 files changed, 19 insertions, 15 deletions
diff --git a/src/curve25519.c b/src/curve25519.c index 7d3fd15..1739a9e 100644 --- a/src/curve25519.c +++ b/src/curve25519.c @@ -39,35 +39,39 @@ typedef int64_t s64; #define le32_to_cpup(a) (*(a)) #define cpu_to_le64(a) (a) #endif -static inline __le32 get_unaligned_le32(const u8 *a) +#ifndef __unused +#define __unused __attribute__((unused)) +#endif +#ifndef __always_inline +#define __always_inline __inline __attribute__((__always_inline__)) +#endif +#ifndef noinline +#define noinline __attribute__((noinline)) +#endif +#ifndef __aligned +#define __aligned(x) __attribute__((aligned(x))) +#endif +#ifndef __force +#define __force +#endif + +static __always_inline __unused __le32 get_unaligned_le32(const u8 *a) { __le32 l; __builtin_memcpy(&l, a, sizeof(l)); return le32_to_cpup(&l); } -static inline __le64 get_unaligned_le64(const u8 *a) +static __always_inline __unused __le64 get_unaligned_le64(const u8 *a) { __le64 l; __builtin_memcpy(&l, a, sizeof(l)); return le64_to_cpup(&l); } -static inline void put_unaligned_le64(u64 s, u8 *d) +static __always_inline __unused void put_unaligned_le64(u64 s, u8 *d) { __le64 l = cpu_to_le64(s); __builtin_memcpy(d, &l, sizeof(l)); } -#ifndef __always_inline -#define __always_inline __inline __attribute__((__always_inline__)) -#endif -#ifndef noinline -#define noinline __attribute__((noinline)) -#endif -#ifndef __aligned -#define __aligned(x) __attribute__((aligned(x))) -#endif -#ifndef __force -#define __force -#endif static noinline void memzero_explicit(void *s, size_t count) { |