From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 2181) id E10E5395542C; Mon, 14 Jun 2021 17:24:25 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org E10E5395542C MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset="utf-8" From: Jonathan Wakely To: gcc-cvs@gcc.gnu.org Subject: [gcc r12-1435] c-family: Add fix-it suggestions for more names [PR101052] X-Act-Checkin: gcc X-Git-Author: Jonathan Wakely X-Git-Refname: refs/heads/master X-Git-Oldrev: 046a3beb1673bf4a61c131373b6a5e84158e92bf X-Git-Newrev: 93bfadf3a1db7d73e9ca4a4a3d40f7f81ea16d39 Message-Id: <20210614172425.E10E5395542C@sourceware.org> Date: Mon, 14 Jun 2021 17:24:25 +0000 (GMT) X-BeenThere: gcc-cvs@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-cvs mailing list List-Unsubscribe: , List-Archive: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 14 Jun 2021 17:24:26 -0000 https://gcc.gnu.org/g:93bfadf3a1db7d73e9ca4a4a3d40f7f81ea16d39 commit r12-1435-g93bfadf3a1db7d73e9ca4a4a3d40f7f81ea16d39 Author: Jonathan Wakely Date: Mon Jun 14 11:38:11 2021 +0100 c-family: Add fix-it suggestions for more names [PR101052] PR c++/101052 gcc/c-family/ChangeLog: * known-headers.cc (get_stdlib_header_for_name): Add known headers for EXIT_FAILURE, EXIT_SUCCESS, abort, atexit, calloc, exit, and getenv. gcc/testsuite/ChangeLog: * g++.dg/spellcheck-stdlib.C: Add checks for names. * gcc.dg/spellcheck-stdlib.c: Likewise. Diff: --- gcc/c-family/known-headers.cc | 7 +++++++ gcc/testsuite/g++.dg/spellcheck-stdlib.C | 18 ++++++++++++++++++ gcc/testsuite/gcc.dg/spellcheck-stdlib.c | 10 ++++++++++ 3 files changed, 35 insertions(+) diff --git a/gcc/c-family/known-headers.cc b/gcc/c-family/known-headers.cc index 85924718c8b..a3912468a8d 100644 --- a/gcc/c-family/known-headers.cc +++ b/gcc/c-family/known-headers.cc @@ -162,7 +162,14 @@ get_stdlib_header_for_name (const char *name, enum stdlib lib) {"stdout", {"", ""} }, /* and . */ + {"EXIT_FAILURE", {"", ""} }, + {"EXIT_SUCCESS", {"", ""} }, + {"abort", {"", ""} }, + {"atexit", {"", ""} }, + {"calloc", {"", ""} }, + {"exit", {"", ""} }, {"free", {"", ""} }, + {"getenv", {"", ""} }, {"malloc", {"", ""} }, {"realloc", {"", ""} }, diff --git a/gcc/testsuite/g++.dg/spellcheck-stdlib.C b/gcc/testsuite/g++.dg/spellcheck-stdlib.C index 31e91fe8d1b..87736b25e54 100644 --- a/gcc/testsuite/g++.dg/spellcheck-stdlib.C +++ b/gcc/testsuite/g++.dg/spellcheck-stdlib.C @@ -138,6 +138,24 @@ void test_cstdlib (void *q) // { dg-message "'#include '" "" { target *-*-* } .-1 } q = realloc (q, 1024); // { dg-error "was not declared" } // { dg-message "'#include '" "" { target *-*-* } .-1 } + q = calloc (8, 8); // { dg-error "was not declared" } + // { dg-message "'#include '" "" { target *-*-* } .-1 } + + void callback (); + atexit (callback); // { dg-error "was not declared" } + // { dg-message "'#include '" "" { target *-*-* } .-1 } + int i; + i = EXIT_SUCCESS; // { dg-error "was not declared" } + // { dg-message "'#include '" "" { target *-*-* } .-1 } + i = EXIT_FAILURE; // { dg-error "was not declared" } + // { dg-message "'#include '" "" { target *-*-* } .-1 } + exit (i); // { dg-error "was not declared" } + // { dg-message "'#include '" "" { target *-*-* } .-1 } + abort (); // { dg-error "was not declared" } + // { dg-message "'#include '" "" { target *-*-* } .-1 } + + getenv ("foo"); // { dg-error "was not declared" } + // { dg-message "'#include '" "" { target *-*-* } .-1 } } /* Verify that we don't offer suggestions to stdlib globals names when diff --git a/gcc/testsuite/gcc.dg/spellcheck-stdlib.c b/gcc/testsuite/gcc.dg/spellcheck-stdlib.c index 1ae3b5e33ab..7297a92368f 100644 --- a/gcc/testsuite/gcc.dg/spellcheck-stdlib.c +++ b/gcc/testsuite/gcc.dg/spellcheck-stdlib.c @@ -38,6 +38,16 @@ void test_stdio_h (void) /* { dg-message "'EOF' is defined in header ''; did you forget to '#include '?" "" { target *-*-* } .-1 } */ } +/* Missing . */ + +void test_stdlib (int i) +{ + i = EXIT_SUCCESS; /* { dg-error "'EXIT_SUCCESS' undeclared" } */ + /* { dg-message "'EXIT_SUCCESS' is defined in header ''; did you forget to '#include '?" "" { target *-*-* } .-1 } */ + i = EXIT_FAILURE; /* { dg-error "'EXIT_FAILURE' undeclared" } */ + /* { dg-message "'EXIT_FAILURE' is defined in header ''; did you forget to '#include '?" "" { target *-*-* } .-1 } */ +} + /* Missing . */ int test_errno_h (void)