Fix a wrong compiler warning in io.c

This commit is contained in:
Linus Dierheimer
2021-11-17 11:57:50 +01:00
parent 7db781c508
commit 6c4961aaff
+9
View File
@@ -431,7 +431,16 @@ void ffAppendFDContent(int fd, FFstrbuf* buffer)
(uint32_t) readed == free
) {
buffer->length += readed;
//GCC is complaining about a possible write to an array of length zero.
//It believes (buffer->allocated * 2) - 1) can be zero. | This is done in ffStrbufEnsureCapacity.
//This would happen when buffer->allocated is zero: 0 * 2 = 0; 0 - 1 = UINT32_MAX; UINT32_MAX + 1 = 0;
//However, this can never be true, because of our ffStrbufEnsureFree call above.
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wstringop-overflow"
ffStrbufEnsureCapacity(buffer, (buffer->allocated * 2) - 1); // -1 for null terminator
#pragma GCC diagnostic pop
free = ffStrbufGetFree(buffer);
}