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