diff --git a/fixincludes/ChangeLog b/fixincludes/ChangeLog index 26f697ad189..da21dbcd9ad 100644 --- a/fixincludes/ChangeLog +++ b/fixincludes/ChangeLog @@ -1,3 +1,10 @@ +2016-01-31 John David Anglin + + PR target/68741 + * inclhack.def (hpux_vsscanf): New fix. + * fixincl.x: Regenerated. + * tests/base/stdio.h [HPUX_VSSCANF_CHECK]: New test. + 2015-08-14 David Edelsohn * inclhack.def (aix_stdio_inline): New fix. diff --git a/fixincludes/fixincl.x b/fixincludes/fixincl.x index 79af6d10f55..38338117690 100644 --- a/fixincludes/fixincl.x +++ b/fixincludes/fixincl.x @@ -1,12 +1,12 @@ /* -*- buffer-read-only: t -*- vi: set ro: - * - *DO NOT EDIT THIS FILE (fixincl.x) - * - *It has been AutoGen-ed August 13, 2015 at 05:25:50 PM by AutoGen 5.18.3 - *From the definitions inclhack.def - *and the template file fixincl + * + * DO NOT EDIT THIS FILE (fixincl.x) + * + * It has been AutoGen-ed Sunday January 31, 2016 at 07:52:05 PM EST + * From the definitions inclhack.def + * and the template file fixincl */ -/* DO NOT SVN-MERGE THIS FILE, EITHER Thu Aug 13 17:25:50 UTC 2015 +/* DO NOT SVN-MERGE THIS FILE, EITHER Sun 31 Jan 2016 19:52:05 EST * * You must regenerate it. Use the ./genfixes script. * @@ -15,7 +15,7 @@ * certain ANSI-incompatible system header files which are fixed to work * correctly with ANSI C and placed in a directory that GNU C will search. * - * This file contains 230 fixup descriptions. + * This file contains 231 fixup descriptions. * * See README for more information. * @@ -4324,6 +4324,43 @@ static const char* apzHpux11_VsnprintfPatch[] = { "%1 __va_list);", (char*)NULL }; +/* * * * * * * * * * * * * * * * * * * * * * * * * * + * + * Description of Hpux_Vsscanf fix + */ +tSCC zHpux_VsscanfName[] = + "hpux_vsscanf"; + +/* + * File name selection pattern + */ +tSCC zHpux_VsscanfList[] = + "stdio.h\0"; +/* + * Machine/OS name selection pattern + */ +tSCC* apzHpux_VsscanfMachs[] = { + "*-*-hpux*", + (const char*)NULL }; + +/* + * content selection pattern - do fix if pattern found + */ +tSCC zHpux_VsscanfSelect0[] = + "(extern int vsscanf\\()char"; + +#define HPUX_VSSCANF_TEST_CT 1 +static tTestDesc aHpux_VsscanfTests[] = { + { TT_EGREP, zHpux_VsscanfSelect0, (regex_t*)NULL }, }; + +/* + * Fix Command Arguments for Hpux_Vsscanf + */ +static const char* apzHpux_VsscanfPatch[] = { + "format", + "%1const char", + (char*)NULL }; + /* * * * * * * * * * * * * * * * * * * * * * * * * * * * Description of Hpux8_Bogus_Inlines fix @@ -9448,9 +9485,9 @@ static const char* apzX11_SprintfPatch[] = { * * List of all fixes */ -#define REGEX_COUNT 267 +#define REGEX_COUNT 268 #define MACH_LIST_SIZE_LIMIT 187 -#define FIX_COUNT 230 +#define FIX_COUNT 231 /* * Enumerate the fixes @@ -9556,6 +9593,7 @@ typedef enum { HPUX11_SIZE_T_FIXIDX, HPUX11_SNPRINTF_FIXIDX, HPUX11_VSNPRINTF_FIXIDX, + HPUX_VSSCANF_FIXIDX, HPUX8_BOGUS_INLINES_FIXIDX, HPUX_C99_INTPTR_FIXIDX, HPUX_C99_INTTYPES_FIXIDX, @@ -10189,6 +10227,11 @@ tFixDesc fixDescList[ FIX_COUNT ] = { HPUX11_VSNPRINTF_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE, aHpux11_VsnprintfTests, apzHpux11_VsnprintfPatch, 0 }, + { zHpux_VsscanfName, zHpux_VsscanfList, + apzHpux_VsscanfMachs, + HPUX_VSSCANF_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE, + aHpux_VsscanfTests, apzHpux_VsscanfPatch, 0 }, + { zHpux8_Bogus_InlinesName, zHpux8_Bogus_InlinesList, apzHpux8_Bogus_InlinesMachs, HPUX8_BOGUS_INLINES_TEST_CT, FD_MACH_ONLY, diff --git a/fixincludes/inclhack.def b/fixincludes/inclhack.def index fc72add35dc..8b6d1fe3a13 100644 --- a/fixincludes/inclhack.def +++ b/fixincludes/inclhack.def @@ -2272,6 +2272,20 @@ fix = { ' __va__list);'; }; +/* + * Fix missing const in hpux vsscanf declaration + */ +fix = { + hackname = hpux_vsscanf; + mach = "*-*-hpux*"; + files = stdio.h; + select = '(extern int vsscanf\()char'; + c_fix = format; + c_fix_arg = "%1const char"; + + test_text = 'extern int vsscanf(char *, const char *, __va_list);'; +}; + /* * get rid of bogus inline definitions in HP-UX 8.0 */ diff --git a/fixincludes/tests/base/stdio.h b/fixincludes/tests/base/stdio.h index 275931c52cc..4ca4fafeb95 100644 --- a/fixincludes/tests/base/stdio.h +++ b/fixincludes/tests/base/stdio.h @@ -59,6 +59,11 @@ extern int vsnprintf(char *, _hpux_size_t, const char *, __gnuc_va_list); #endif /* HPUX11_VSNPRINTF_CHECK */ +#if defined( HPUX_VSSCANF_CHECK ) +extern int vsscanf(const char *, const char *, __gnuc_va_list); +#endif /* HPUX_VSSCANF_CHECK */ + + #if defined( IRIX_STDIO_DUMMY_VA_LIST_CHECK ) extern int printf( const char *, __gnuc_va_list ); #endif /* IRIX_STDIO_DUMMY_VA_LIST_CHECK */