Messages in this thread Patch in this message | | | Date | Tue, 14 Aug 2018 21:38:26 +0200 | From | Miguel Ojeda <> | Subject | [PATCH v3 2/2] auxdisplay: panel: avoid gcc 8's Wstringop-truncation warning |
| |
Let gcc know it is not meant to be NUL-terminated by annotating with the new __nonstring variable attribute; and remove the comment since it conveys the same information.
Cc: Willy Tarreau <w@1wt.eu> Cc: Ingo Molnar <mingo@kernel.org> Cc: Josh Poimboeuf <jpoimboe@redhat.com> Cc: Kees Cook <keescook@chromium.org> Cc: Geert Uytterhoeven <geert@linux-m68k.org> Cc: Will Deacon <will.deacon@arm.com> Cc: David Rientjes <rientjes@google.com> Cc: Martin Sebor <msebor@gmail.com> Cc: Arnd Bergmann <arnd@arndb.de> Cc: Joe Perches <joe@perches.com> Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Cc: Andrew Morton <akpm@linux-foundation.org> Cc: Linus Torvalds <torvalds@linux-foundation.org> Signed-off-by: Miguel Ojeda <miguel.ojeda.sandonis@gmail.com> --- v3: Moved #ifdef block to the bottom of the file as suggested by Joe. Updated description of the nonstring attribute in the patch and in the commit message from the GCC docs. Put all Cc people in both patches since the second is really an example of the first. Added Linus and Greg.
v2: Re-sending this since a few months have passed, Martin has improved GCC's feature and warnings are appearing in Geert's build bot. Added an example in the second patch as requested by David.
drivers/auxdisplay/panel.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-)
diff --git a/drivers/auxdisplay/panel.c b/drivers/auxdisplay/panel.c index 3b25a643058c..21b9b2f2470a 100644 --- a/drivers/auxdisplay/panel.c +++ b/drivers/auxdisplay/panel.c @@ -155,10 +155,9 @@ struct logical_input { int release_data; } std; struct { /* valid when type == INPUT_TYPE_KBD */ - /* strings can be non null-terminated */ - char press_str[sizeof(void *) + sizeof(int)]; - char repeat_str[sizeof(void *) + sizeof(int)]; - char release_str[sizeof(void *) + sizeof(int)]; + char press_str[sizeof(void *) + sizeof(int)] __nonstring; + char repeat_str[sizeof(void *) + sizeof(int)] __nonstring; + char release_str[sizeof(void *) + sizeof(int)] __nonstring; } kbd; } u; }; -- 2.17.1
| |