https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101773
Bug ID: 101773
Summary: errors when writing to .gcda file are not checked
Product: gcc
Version: 12.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: gcov-profile
Assignee: unassigned at gcc dot gnu.org
Reporter: vincent-gcc at vinc17 dot net
CC: marxin at gcc dot gnu.org
Target Milestone: ---
When I run a program compiled with -fprofile-generate, this program creates a
.gcda file, but write/close errors are not checked. With GCC 12.0.0 20210729
built from master and an almost full file system for the .gcda file:
$ gcc-test -O -fprofile-generate=dir tst.c
$ strace ./a.out
[...]
openat(AT_FDCWD, "dir/#home#vlefevre#a-tst.gcda", O_RDWR|O_CREAT, 0666) = 3
fcntl(3, F_SETLKW, {l_type=F_WRLCK, l_whence=SEEK_SET, l_start=0, l_len=0}) = 0
fcntl(3, F_GETFL) = 0x8002 (flags O_RDWR|O_LARGEFILE)
fstat(3, {st_mode=S_IFREG|0644, st_size=0, ...}) = 0
read(3, "", 1024) = 0
lseek(3, 0, SEEK_SET) = 0
write(3, "adcg 02B\21\20\217\20\0\0\0\241\10\0\0\0\1\0\0\0\1\0\0\0\0\0\0\1"...,
84) = -1 ENOSPC (No space left on device)
close(3) = 0
exit_group(0) = ?
+++ exited with 0 +++
Note that with gcc (Debian 10.2.1-6) 10.2.1 20210110, I get an error message:
$ ./a.out
libgcov profiling error:dir/#home#vlefevre#tst.gcda:Error writing
but the exit status is also 0, so that the error cannot be detected in scripts.