On AIX 7.1 with gcc, I see this compilation warning:

test-system-quote-child.c: In function 'main':
test-system-quote-child.c:48:5: warning: implicit declaration of function 
'fopen' [-Wimplicit-function-declaration]
     FILE *fp = fopen (EXPECTED_DATA_FILE, "rb");
test-system-quote-child.c:48:16: warning: initialization makes pointer from 
integer without a cast [enabled by default]
     FILE *fp = fopen (EXPECTED_DATA_FILE, "rb");

The reason is that _LARGE_FILES is in effect, <stdio.h> originally defines
  #define fopen fopen64
and it declares fopen64 (but not fopen!), and after gnulib's
  #define fopen rpl_fopen
  #undef fopen
the symbol 'fopen' does not refer to a declared function any more.

This patch will fix it.

2016-10-16  Bruno Haible  <br...@clisp.org>

        system-quote tests: Avoid compiler warning on AIX.
        * tests/test-system-quote-child.c (fopen): Redefine like the system's
        <stdio.h> does.

diff --git a/tests/test-system-quote-child.c b/tests/test-system-quote-child.c
index 75ed87a..4e4fcdd 100644
--- a/tests/test-system-quote-child.c
+++ b/tests/test-system-quote-child.c
@@ -25,6 +25,10 @@
 #undef fopen
 #undef fprintf
 #undef fread
+/* Restore the original fopen definition on AIX.  */
+#if defined _AIX && defined _LARGE_FILES
+# define fopen fopen64
 #define EXPECTED_DATA_FILE "t-sq-data.tmp"

Reply via email to