diff mbox series

[testsuite,committed] Compile strncpy-fix-1.c with -Wno-stringop-truncation

Message ID 096cf240-55e1-37e1-2810-0594a76492c0@mentor.com
State New
Headers show
Series [testsuite,committed] Compile strncpy-fix-1.c with -Wno-stringop-truncation | expand

Commit Message

Tom de Vries Nov. 15, 2017, 3:12 p.m. UTC
[ Re: [PATCH 3/4] enhance overflow and truncation detection in strncpy 
and strncat (PR 81117) ]

On 08/06/2017 10:07 PM, Martin Sebor wrote:
> Part 3 of the series contains the meat of the patch: the new
> -Wstringop-truncation option, and enhancements to -Wstringop-
> overflow, and -Wpointer-sizeof-memaccess to detect misuses of
> strncpy and strncat.
> 
> Martin
> 
> gcc-81117-3.diff
> 
> 
> PR c/81117 - Improve buffer overflow checking in strncpy
> 

> gcc/testsuite/ChangeLog:
> 
> 	PR c/81117
> 	* c-c++-common/Wsizeof-pointer-memaccess3.c: New test.
> 	* c-c++-common/Wstringop-overflow.c: Same.
> 	* c-c++-common/Wstringop-truncation.c: Same.
> 	* c-c++-common/Wsizeof-pointer-memaccess2.c: Adjust.
> 	* c-c++-common/attr-nonstring-2.c: New test.
> 	* g++.dg/torture/Wsizeof-pointer-memaccess1.C: Adjust.
> 	* g++.dg/torture/Wsizeof-pointer-memaccess2.C: Same.
> 	* gcc.dg/torture/pr63554.c: Same.
> 	* gcc.dg/Walloca-1.c: Disable macro tracking.
> 

Hi,

this also caused a regression in strncpy-fix-1.c. I noticed it for nvptx 
  (but I also saw it in other test results, f.i. for 
x86_64-unknown-freebsd12.0 at 
https://gcc.gnu.org/ml/gcc-testresults/2017-11/msg01276.html ).

On linux you don't see this unless you add -Wsystem-headers:
...
$ gcc src/gcc/testsuite/gcc.dg/strncpy-fix-1.c 
-fno-diagnostics-show-caret -fdiagnostics-color=never -O2 -Wall 
-Wsystem-headers -S -o strncpy-fix-1.s
In file included from /usr/include/string.h:630,
                  from src/gcc/testsuite/gcc.dg/strncpy-fix-1.c:6:
src/gcc/testsuite/gcc.dg/strncpy-fix-1.c: In function ‘f’:
src/gcc/testsuite/gcc.dg/strncpy-fix-1.c:10:3: warning: 
‘__builtin_strncpy’ output truncated before terminating nul copying 2 
bytes from a string of the same length [-Wstringop-truncation]
...

Fixed by adding -Wno-stringop-truncation.

Committed as obvious.

Thanks,
- Tom

Comments

Martin Sebor Nov. 15, 2017, 3:43 p.m. UTC | #1
On 11/15/2017 08:12 AM, Tom de Vries wrote:
> [ Re: [PATCH 3/4] enhance overflow and truncation detection in strncpy
> and strncat (PR 81117) ]
>
> On 08/06/2017 10:07 PM, Martin Sebor wrote:
>> Part 3 of the series contains the meat of the patch: the new
>> -Wstringop-truncation option, and enhancements to -Wstringop-
>> overflow, and -Wpointer-sizeof-memaccess to detect misuses of
>> strncpy and strncat.
>>
>> Martin
>>
>> gcc-81117-3.diff
>>
>>
>> PR c/81117 - Improve buffer overflow checking in strncpy
>>
>
>> gcc/testsuite/ChangeLog:
>>
>>     PR c/81117
>>     * c-c++-common/Wsizeof-pointer-memaccess3.c: New test.
>>     * c-c++-common/Wstringop-overflow.c: Same.
>>     * c-c++-common/Wstringop-truncation.c: Same.
>>     * c-c++-common/Wsizeof-pointer-memaccess2.c: Adjust.
>>     * c-c++-common/attr-nonstring-2.c: New test.
>>     * g++.dg/torture/Wsizeof-pointer-memaccess1.C: Adjust.
>>     * g++.dg/torture/Wsizeof-pointer-memaccess2.C: Same.
>>     * gcc.dg/torture/pr63554.c: Same.
>>     * gcc.dg/Walloca-1.c: Disable macro tracking.
>>
>
> Hi,
>
> this also caused a regression in strncpy-fix-1.c. I noticed it for nvptx
>  (but I also saw it in other test results, f.i. for
> x86_64-unknown-freebsd12.0 at
> https://gcc.gnu.org/ml/gcc-testresults/2017-11/msg01276.html ).
>
> On linux you don't see this unless you add -Wsystem-headers:

Yes, some Glibc versions (I think 2.24 and prior) define strncpy
as a macro.  The macro has been removed from newer versions, which
makes the warning show up inconsistently.  I test on Fedora 25 with
the older Glibc so I don't see all these warnings.

I'm tracking the problem bug 82944.

> ...
> $ gcc src/gcc/testsuite/gcc.dg/strncpy-fix-1.c
> -fno-diagnostics-show-caret -fdiagnostics-color=never -O2 -Wall
> -Wsystem-headers -S -o strncpy-fix-1.s
> In file included from /usr/include/string.h:630,
>                  from src/gcc/testsuite/gcc.dg/strncpy-fix-1.c:6:
> src/gcc/testsuite/gcc.dg/strncpy-fix-1.c: In function ‘f’:
> src/gcc/testsuite/gcc.dg/strncpy-fix-1.c:10:3: warning:
> ‘__builtin_strncpy’ output truncated before terminating nul copying 2
> bytes from a string of the same length [-Wstringop-truncation]
> ...
>
> Fixed by adding -Wno-stringop-truncation.
>
> Committed as obvious.

Thanks
Martin
diff mbox series

Patch

Compile strncpy-fix-1.c with -Wno-stringop-truncation

2017-11-15  Tom de Vries  <tom@codesourcery.com>

	* gcc.dg/strncpy-fix-1.c: Add -Wno-stringop-truncation to dg-options.

---
 gcc/testsuite/gcc.dg/strncpy-fix-1.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/gcc/testsuite/gcc.dg/strncpy-fix-1.c b/gcc/testsuite/gcc.dg/strncpy-fix-1.c
index b8bc916..b4fd4aa 100644
--- a/gcc/testsuite/gcc.dg/strncpy-fix-1.c
+++ b/gcc/testsuite/gcc.dg/strncpy-fix-1.c
@@ -1,7 +1,7 @@ 
 /* Test that use of strncpy does not result in a "value computed is
    not used" warning.  */
 /* { dg-do compile } */
-/* { dg-options "-O2 -Wall" } */
+/* { dg-options "-O2 -Wall -Wno-stringop-truncation" } */
 
 #include <string.h>
 void