[Bug c/52880] New: -Woverride-init emitts unexpected error

2012-04-05 Thread eparis at redhat dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52880

 Bug #: 52880
   Summary: -Woverride-init emitts unexpected error
Classification: Unclassified
   Product: gcc
   Version: 4.7.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: epa...@redhat.com


struct s1 {
int s1i;
int s1j;
};

struct s2 {
struct s1 s1;
int s2x;
int s2y;
};

int main(void)
{
struct s2 s2 = {
.s1.s1i= 0,
.s2y= 1,
.s2x= 2,
.s1.s1j= 3,
};

return 0;
}

$ gcc -o /tmp/tmp /tmp/tmp.c -Woverride-init
/tmp/tmp.c: In function ‘main’:
/tmp/tmp.c:18:3: warning: initialized field overwritten [-Woverride-init]
/tmp/tmp.c:18:3: warning: (near initialization for ‘s2’) [-Woverride-init]

If you twiddle any of the testcase, it doesn't complain.  switching the order
you initialize s2x and s2y causes it to not complain.  If you want to get 2
warnings you can declare s1 between s2x and s2y.

I see this on both:
gcc-4.7.0-1.fc17.x86_64
gcc-4.4.6-4.el6.x86_64


[Bug c/52880] -Woverride-init emitts unexpected error

2012-04-05 Thread eparis at redhat dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52880

eparis at redhat dot com changed:

   What|Removed |Added

   Severity|normal  |trivial