c-family: Add fix-it suggestions for more <stdlib.h> 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 <cstdlib> names. * gcc.dg/spellcheck-stdlib.c: Likewise.
This commit is contained in:
parent
046a3beb16
commit
93bfadf3a1
3 changed files with 35 additions and 0 deletions
|
@ -162,7 +162,14 @@ get_stdlib_header_for_name (const char *name, enum stdlib lib)
|
|||
{"stdout", {"<stdio.h>", "<cstdio>"} },
|
||||
|
||||
/* <stdlib.h> and <cstdlib>. */
|
||||
{"EXIT_FAILURE", {"<stdlib.h>", "<cstdlib>"} },
|
||||
{"EXIT_SUCCESS", {"<stdlib.h>", "<cstdlib>"} },
|
||||
{"abort", {"<stdlib.h>", "<cstdlib>"} },
|
||||
{"atexit", {"<stdlib.h>", "<cstdlib>"} },
|
||||
{"calloc", {"<stdlib.h>", "<cstdlib>"} },
|
||||
{"exit", {"<stdlib.h>", "<cstdlib>"} },
|
||||
{"free", {"<stdlib.h>", "<cstdlib>"} },
|
||||
{"getenv", {"<stdlib.h>", "<cstdlib>"} },
|
||||
{"malloc", {"<stdlib.h>", "<cstdlib>"} },
|
||||
{"realloc", {"<stdlib.h>", "<cstdlib>"} },
|
||||
|
||||
|
|
|
@ -138,6 +138,24 @@ void test_cstdlib (void *q)
|
|||
// { dg-message "'#include <cstdlib>'" "" { target *-*-* } .-1 }
|
||||
q = realloc (q, 1024); // { dg-error "was not declared" }
|
||||
// { dg-message "'#include <cstdlib>'" "" { target *-*-* } .-1 }
|
||||
q = calloc (8, 8); // { dg-error "was not declared" }
|
||||
// { dg-message "'#include <cstdlib>'" "" { target *-*-* } .-1 }
|
||||
|
||||
void callback ();
|
||||
atexit (callback); // { dg-error "was not declared" }
|
||||
// { dg-message "'#include <cstdlib>'" "" { target *-*-* } .-1 }
|
||||
int i;
|
||||
i = EXIT_SUCCESS; // { dg-error "was not declared" }
|
||||
// { dg-message "'#include <cstdlib>'" "" { target *-*-* } .-1 }
|
||||
i = EXIT_FAILURE; // { dg-error "was not declared" }
|
||||
// { dg-message "'#include <cstdlib>'" "" { target *-*-* } .-1 }
|
||||
exit (i); // { dg-error "was not declared" }
|
||||
// { dg-message "'#include <cstdlib>'" "" { target *-*-* } .-1 }
|
||||
abort (); // { dg-error "was not declared" }
|
||||
// { dg-message "'#include <cstdlib>'" "" { target *-*-* } .-1 }
|
||||
|
||||
getenv ("foo"); // { dg-error "was not declared" }
|
||||
// { dg-message "'#include <cstdlib>'" "" { target *-*-* } .-1 }
|
||||
}
|
||||
|
||||
/* Verify that we don't offer suggestions to stdlib globals names when
|
||||
|
|
|
@ -38,6 +38,16 @@ void test_stdio_h (void)
|
|||
/* { dg-message "'EOF' is defined in header '<stdio.h>'; did you forget to '#include <stdio.h>'?" "" { target *-*-* } .-1 } */
|
||||
}
|
||||
|
||||
/* Missing <stdlib.h>. */
|
||||
|
||||
void test_stdlib (int i)
|
||||
{
|
||||
i = EXIT_SUCCESS; /* { dg-error "'EXIT_SUCCESS' undeclared" } */
|
||||
/* { dg-message "'EXIT_SUCCESS' is defined in header '<stdlib.h>'; did you forget to '#include <stdlib.h>'?" "" { target *-*-* } .-1 } */
|
||||
i = EXIT_FAILURE; /* { dg-error "'EXIT_FAILURE' undeclared" } */
|
||||
/* { dg-message "'EXIT_FAILURE' is defined in header '<stdlib.h>'; did you forget to '#include <stdlib.h>'?" "" { target *-*-* } .-1 } */
|
||||
}
|
||||
|
||||
/* Missing <errno.h>. */
|
||||
|
||||
int test_errno_h (void)
|
||||
|
|
Loading…
Add table
Reference in a new issue