AaronBallman wrote:

> arch/arm64/include/asm/barrier.h:164:59: note: expanded from macro 
> '__smp_load_acquire'
>   164 |         union { __unqual_scalar_typeof(*p) __val; char __c[1]; } __u; 
>   \
>       |                                                                  ^

Whhhhaaaa? `__unqual_scalar_typeof(*p)` seems to result in a `const`-qualified 
type. I'm surprised something named `unqual` would do that. Can you confirm I'm 
getting that correct?

This one:
```
In file included from net/ipv4/ip_fragment.c:42:
include/net/ip.h:478:14: warning: default initialization of an object of type 
'typeof (rt->dst.expires)' (aka 'const unsigned long') leaves the object 
uninitialized and is incompatible with C++ [-Wdefault-const-init-unsafe]
  478 |                 if (mtu && time_before(jiffies, rt->dst.expires))
      |                            ^
include/linux/jiffies.h:138:26: note: expanded from macro 'time_before' 
  138 | #define time_before(a,b)        time_after(b,a)
      |                                 ^
include/linux/jiffies.h:128:3: note: expanded from macro 'time_after'
  128 |         (typecheck(unsigned long, a) && \
      |          ^
include/linux/typecheck.h:11:12: note: expanded from macro 'typecheck'
   11 |         typeof(x) __dummy2; \
      |                   ^
2 warnings generated.
```
is unfortunate. The diagnostic is expected, but I can see why you'd want to 
silence it. Does adding `= {};` to the declarations for the dummy variable work 
for you?

> I also see another instance from [a recent change in the crypto 
> code](https://git.kernel.org/linus/db873be6f0549597f92c72986b1939643a7f9a75):

That looks like a correct diagnostic to me, but I admit the code is dense 
enough I may be missing something. Is there a reason why `addr` should not be 
initialized? Or is this relying on initialization through other means like 
`memcpy` into the field because the containing object is non-const?

https://github.com/llvm/llvm-project/pull/137166
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to