declare getpass in analyzer/sensitive-1.c test
authorAlexandre Oliva <oliva@adacore.com>
Thu, 14 Jan 2021 19:12:19 +0000 (16:12 -0300)
committerAlexandre Oliva <oliva@gnu.org>
Thu, 14 Jan 2021 19:12:19 +0000 (16:12 -0300)
The getpass function is not available on all systems; and not
necessarily declared in unistd.h, as expected by the sensitive-1
analyzer test.

Since this is a compile-only test, it doesn't really matter if the
function is defined in the system libraries.  All we need is a
declaration, to avoid warnings from calling an undeclared function.
This patch adds the declaration, in a way that is most unlikely to
conflict with any existing declaration.

for  gcc/testsuite/ChangeLog

* gcc.dg/analyzer/sensitive-1.c: Declare getpass.

gcc/testsuite/gcc.dg/analyzer/sensitive-1.c

index 81144af620edfd59b72a9ed1fcb06fb894f47ce9..c66af9276174f8f5f2702877ff18e6a58988aad2 100644 (file)
@@ -6,6 +6,11 @@
 
 #include <string.h>
 
+/* Declare getpass, in case unistd doesn't declare it.
+   Parenthesize it, in case it's a macro.
+   Don't use a prototype, to avoid const mismatches.  */
+extern char *(getpass) ();
+
 char test_1 (FILE *logfile)
 {
   char *password = getpass (">"); /* { dg-message "\\(1\\) sensitive value acquired here" } */