https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108427

            Bug ID: 108427
           Summary: bitfield tests fail with missing warnings
           Product: gcc
           Version: 13.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: testsuite
          Assignee: unassigned at gcc dot gnu.org
          Reporter: nightstrike at gmail dot com
  Target Milestone: ---

Both bitfield-3.m and bitfield-5.m appear to fail for the same reason on
x86_64-w64-mingw32 (cross compiled from linux, if it matters).  The tests each
contain multiple tests for warnings, only one of which is missing in each case:

PASS: objc.dg/bitfield-3.m -fgnu-runtime  (test for warnings, line 20)
FAIL: objc.dg/bitfield-3.m -fgnu-runtime  (test for warnings, line 27)
PASS: objc.dg/bitfield-3.m -fgnu-runtime  (test for warnings, line 32)
PASS: objc.dg/bitfield-3.m -fgnu-runtime  (test for warnings, line 33)
PASS: objc.dg/bitfield-3.m -fgnu-runtime (test for excess errors)
PASS: objc.dg/bitfield-3.m -fgnu-runtime execution test

PASS: objc.dg/bitfield-5.m -fgnu-runtime  (test for warnings, line 24)
PASS: objc.dg/bitfield-5.m -fgnu-runtime  (test for warnings, line 33)
FAIL: objc.dg/bitfield-5.m -fgnu-runtime  (test for warnings, line 40)
PASS: objc.dg/bitfield-5.m -fgnu-runtime  (test for warnings, line 52)
PASS: objc.dg/bitfield-5.m -fgnu-runtime  (test for warnings, line 57)
PASS: objc.dg/bitfield-5.m -fgnu-runtime  (test for warnings, line 70)
PASS: objc.dg/bitfield-5.m -fgnu-runtime  (test for warnings, line 74)
PASS: objc.dg/bitfield-5.m -fgnu-runtime  (test for warnings, line 75)
PASS: objc.dg/bitfield-5.m -fgnu-runtime  (test for warnings, line 76)
PASS: objc.dg/bitfield-5.m -fgnu-runtime (test for excess errors)

There are similar tests and failures for objc++, but maybe these are supposed
to be XFAIL'd due to PR23610:

PASS: obj-c++.dg/bitfield-4.mm -fgnu-runtime  (test for warnings, line 21)
PASS: obj-c++.dg/bitfield-4.mm -fgnu-runtime  (test for warnings, line 33)
PASS: obj-c++.dg/bitfield-4.mm -fgnu-runtime PR23610 at line 53 (test for bogus
messages, line )
PASS: obj-c++.dg/bitfield-4.mm -fgnu-runtime PR23610 at line 55 (test for bogus
messages, line 28)
FAIL: obj-c++.dg/bitfield-4.mm -fgnu-runtime PR23610 at line 56 (test for bogus
messages, line 34)
PASS: obj-c++.dg/bitfield-4.mm -fgnu-runtime (test for excess errors)
PASS: obj-c++.dg/bitfield-4.mm -fgnu-runtime execution test

PASS: obj-c++.dg/bitfield-1.mm -fgnu-runtime  (test for warnings, line 26)
PASS: obj-c++.dg/bitfield-1.mm -fgnu-runtime  (test for warnings, line 29)
PASS: obj-c++.dg/bitfield-1.mm -fgnu-runtime  (test for warnings, line 76)
PASS: obj-c++.dg/bitfield-1.mm -fgnu-runtime PR23610 at line 118 (test for
bogus messages, line )
PASS: obj-c++.dg/bitfield-1.mm -fgnu-runtime PR23610 at line 119 (test for
bogus messages, line 42)
FAIL: obj-c++.dg/bitfield-1.mm -fgnu-runtime PR23610 at line 120 (test for
bogus messages, line 45)
FAIL: obj-c++.dg/bitfield-1.mm -fgnu-runtime PR23610 at line 121 (test for
bogus messages, line 59)
FAIL: obj-c++.dg/bitfield-1.mm -fgnu-runtime PR23610 at line 122 (test for
bogus messages, line 62)
FAIL: obj-c++.dg/bitfield-1.mm -fgnu-runtime PR23610 at line 123 (test for
bogus messages, line 77)
FAIL: obj-c++.dg/bitfield-1.mm -fgnu-runtime PR23610 at line 124 (test for
bogus messages, line 78)
PASS: obj-c++.dg/bitfield-1.mm -fgnu-runtime (test for excess errors)


bitfield-3.m:
@interface Derived: Base {
  signed e: 5;
  int f: 4;
  enum Enum g: 3;
} /* { dg-warning "padding struct size to alignment boundary" } */
@end


bitfield-5.m:
@interface Derived: Base {
@public
  signed e: 5;
  unsigned f: 4;
  enum Enum g: 3;
} /* { dg-warning "padding struct size to alignment boundary" } */
@end

Reply via email to