Control: tags -1 + moreinfo

On 03.12.18 16:06, François Trahay wrote:
> Package: gcc-8
> Version: 8.2.0-9
> Severity: normal
> 
> Dear Maintainer,
> I have a piece of code in a CMake project that fails to compile when building
> in RelWithDebInfo mode.
> The problem seems to come from gcc-8 when both -Wall and -O2 options are set:
> 
> char* copy_string(const char* str) {
>   int len = strlen(str)+1;
>   char* dest = malloc(sizeof(char)*len);
>   if(dest) {
>     strncpy(dest, str, len);
>   }
>   return dest;
> }
> 
> gcc reports the following error:
> 
> test_strncpy.c:7:3: error: ‘strncpy’ specified bound depends on the length of
> the source argument [-Werror=stringop-overflow=]
>    strncpy(dest, str, len);
>    ^~~~~~~~~~~~~~~~~~~~~~~
> test_strncpy.c:5:13: note: length computed here
>    int len = strlen(str)+1;
>              ^~~~~~~~~~~
> cc1: all warnings being treated as errors
> 
> 
> In this case, there is no problem in the source code, but -Werror=stringop-
> overflow still reports an error.
> 
> Gcc only reports an error when -O2 and -Werror=stringop-overflow (which is
> enabled by -Wall) are set. Replacing strncpy with memcpy also fixes the
> problem.

No, -Werror* is never turned on by -Wall.  Please provide a self-contained
example and the command line options used to show the warning/error.

Reply via email to