mikaelholmen wrote:

Hi @Fznamznon and others!

It looks like this patch not only avoids a false positive, but it also causes 
warnigns on stuff it didn't warn on before.
So if I add the following to clang/test/Sema/missing-field-initializers.c
```
struct S1 {
  long int l;
  struct  { int a, b; } d1;
};

struct S1 s01 = { 1, {1} }; // expected-warning {{missing field 'b' 
initializer}}
struct S1 s02 = { .d1.a = 1 };

union U1 {
  long int l;
  struct  { int a, b; } d1;
};

union U1 u01 = { 1 };
union U1 u02 = { .d1.a = 1 };
```
Without the patch it's silent, but with the patch I get
```
  File /repo/uabelho/main-github/clang/test/Sema/missing-field-initializers.c 
Line 11: missing field 'b' initializer
  File /repo/uabelho/main-github/clang/test/Sema/missing-field-initializers.c 
Line 19: missing field 'b' initializer
```
so it warns on
```
struct S1 s02 = { .d1.a = 1 };
```
and
```
union U1 u02 = { .d1.a = 1 };
```
I suppose this is not as expected?

We see thousands of warnings like this with our downstream compiler.

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

Reply via email to