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

            Bug ID: 105642
           Summary: [12/13 Regression] error: call to
                    ‘__write_overflow_field’ declared with attribute
                    warning:  [-Werror=attribute-warning]
                    sincer12-2270-gdddb6ffdc5c25264
           Product: gcc
           Version: 12.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: tree-optimization
          Assignee: unassigned at gcc dot gnu.org
          Reporter: marxin at gcc dot gnu.org
  Target Milestone: ---

It's reduced from a kernel object file:

$ cat inode.i
void underlying_memset();

int __write_overflow_field() __attribute__((__warning__("")));
int netfs_i_context_init___trans_tmp_1;
struct ceph_inode_info *ceph_alloc_inode_ci;

int
netfs_i_context_init(int *inode) {
  int *ctx = inode + 1;
  long __fortify_size = sizeof(ctx);
  netfs_i_context_init___trans_tmp_1 = __builtin_object_size(ctx, 1);
  unsigned p_size_field = netfs_i_context_init___trans_tmp_1;
  if (p_size_field < __fortify_size)
    __write_overflow_field();
  underlying_memset();
}
struct ceph_inode_info {
  struct {
    int vfs_inode;
  };
} ceph_alloc_inode() {
  netfs_i_context_init(&ceph_alloc_inode_ci->vfs_inode);
}

$ gcc inode.i -O2 -c -Werror=attribute-warning
In function ‘netfs_i_context_init’,
    inlined from ‘ceph_alloc_inode’ at inode.i:22:3:
inode.i:14:5: error: call to ‘__write_overflow_field’ declared with attribute
warning:  [-Werror=attribute-warning]
   14 |     __write_overflow_field();
      |     ^~~~~~~~~~~~~~~~~~~~~~~~
cc1: some warnings being treated as errors

$ gcc-11 inode.i -O2 -c -Werror=attribute-warning

Reply via email to