From: John David Anglin Date: Sat, 11 Nov 2017 15:53:18 +0000 (+0000) Subject: backport: re PR target/68739 (FAIL: 30_threads/call_once/constexpr.cc (test for exces... X-Git-Tag: releases/gcc-6.5.0~687 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=7ded83ac6524698c8ba2b703c1c0864b6fbcc129;p=thirdparty%2Fgcc.git backport: re PR target/68739 (FAIL: 30_threads/call_once/constexpr.cc (test for excess errors)) Backport from mainline 2017-02-25 John David Anglin PR target/68739 * inclhack.def (hpux11_pthread_pointer): New fix. (hpux11_pthread_const): Adjust to remove void * cast from define. * fixincl.x: Regenerate. * tests/base/sys/pthread.h [HPUX11_PTHREAD_CONST_CHECK]: Update tests. From-SVN: r254654 --- diff --git a/fixincludes/ChangeLog b/fixincludes/ChangeLog index 0a9669c4442b..930cdd65984b 100644 --- a/fixincludes/ChangeLog +++ b/fixincludes/ChangeLog @@ -1,3 +1,14 @@ +2017-11-11 John David Anglin + + Backport from mainline + 2017-02-25 John David Anglin + + PR target/68739 + * inclhack.def (hpux11_pthread_pointer): New fix. + (hpux11_pthread_const): Adjust to remove void * cast from define. + * fixincl.x: Regenerate. + * tests/base/sys/pthread.h [HPUX11_PTHREAD_CONST_CHECK]: Update tests. + 2017-07-04 Release Manager * GCC 6.4.0 released. diff --git a/fixincludes/fixincl.x b/fixincludes/fixincl.x index 15467f2a3d23..662dc97762c8 100644 --- a/fixincludes/fixincl.x +++ b/fixincludes/fixincl.x @@ -2,11 +2,11 @@ * * DO NOT EDIT THIS FILE (fixincl.x) * - * It has been AutoGen-ed January 5, 2017 at 06:03:22 PM by AutoGen 5.16.2 + * It has been AutoGen-ed Saturday November 11, 2017 at 10:44:14 AM EST * From the definitions inclhack.def * and the template file fixincl */ -/* DO NOT SVN-MERGE THIS FILE, EITHER Thu Jan 5 18:03:22 CET 2017 +/* DO NOT SVN-MERGE THIS FILE, EITHER Sat 11 Nov 2017 10:44:14 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 240 fixup descriptions. + * This file contains 241 fixup descriptions. * * See README for more information. * @@ -4324,6 +4324,43 @@ static const char* apzHpux11_FabsfPatch[] = { #endif", (char*)NULL }; +/* * * * * * * * * * * * * * * * * * * * * * * * * * + * + * Description of Hpux11_Pthread_Pointer fix + */ +tSCC zHpux11_Pthread_PointerName[] = + "hpux11_pthread_pointer"; + +/* + * File name selection pattern + */ +tSCC zHpux11_Pthread_PointerList[] = + "sys/pthread.h\0"; +/* + * Machine/OS name selection pattern + */ +tSCC* apzHpux11_Pthread_PointerMachs[] = { + "*-hp-hpux11.[0-3]*", + (const char*)NULL }; + +/* + * content selection pattern - do fix if pattern found + */ +tSCC zHpux11_Pthread_PointerSelect0[] = + "(void[ \t]*\\*)(m|c|rw)(_ptr)"; + +#define HPUX11_PTHREAD_POINTER_TEST_CT 1 +static tTestDesc aHpux11_Pthread_PointerTests[] = { + { TT_EGREP, zHpux11_Pthread_PointerSelect0, (regex_t*)NULL }, }; + +/* + * Fix Command Arguments for Hpux11_Pthread_Pointer + */ +static const char* apzHpux11_Pthread_PointerPatch[] = { + "format", + "long\t%2%3", + (char*)NULL }; + /* * * * * * * * * * * * * * * * * * * * * * * * * * * * Description of Hpux11_Pthread_Const fix @@ -4347,7 +4384,7 @@ tSCC* apzHpux11_Pthread_ConstMachs[] = { * content selection pattern - do fix if pattern found */ tSCC zHpux11_Pthread_ConstSelect0[] = - "^#define[ \t]*__POINTER_SET[ \t]*\\(\\(void \\*\\) 1LL\\)"; + "^(#define[ \t]+__POINTER_SET[ \t0,]*)(.*\\))"; #define HPUX11_PTHREAD_CONST_TEST_CT 1 static tTestDesc aHpux11_Pthread_ConstTests[] = { @@ -4358,7 +4395,7 @@ static tTestDesc aHpux11_Pthread_ConstTests[] = { */ static const char* apzHpux11_Pthread_ConstPatch[] = { "format", - "#define __POINTER_SET\t\t((void *) 1L)", + "%11", (char*)NULL }; /* * * * * * * * * * * * * * * * * * * * * * * * * * @@ -9818,9 +9855,9 @@ static const char* apzX11_SprintfPatch[] = { * * List of all fixes */ -#define REGEX_COUNT 276 +#define REGEX_COUNT 277 #define MACH_LIST_SIZE_LIMIT 187 -#define FIX_COUNT 240 +#define FIX_COUNT 241 /* * Enumerate the fixes @@ -9926,6 +9963,7 @@ typedef enum { HPUX11_EXTERN_SENDFILE_FIXIDX, HPUX11_EXTERN_SENDPATH_FIXIDX, HPUX11_FABSF_FIXIDX, + HPUX11_PTHREAD_POINTER_FIXIDX, HPUX11_PTHREAD_CONST_FIXIDX, HPUX11_SIZE_T_FIXIDX, HPUX11_SNPRINTF_FIXIDX, @@ -10569,6 +10607,11 @@ tFixDesc fixDescList[ FIX_COUNT ] = { HPUX11_FABSF_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE, aHpux11_FabsfTests, apzHpux11_FabsfPatch, 0 }, + { zHpux11_Pthread_PointerName, zHpux11_Pthread_PointerList, + apzHpux11_Pthread_PointerMachs, + HPUX11_PTHREAD_POINTER_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE, + aHpux11_Pthread_PointerTests, apzHpux11_Pthread_PointerPatch, 0 }, + { zHpux11_Pthread_ConstName, zHpux11_Pthread_ConstList, apzHpux11_Pthread_ConstMachs, HPUX11_PTHREAD_CONST_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE, diff --git a/fixincludes/inclhack.def b/fixincludes/inclhack.def index ef23e489e39b..98fb5b616492 100644 --- a/fixincludes/inclhack.def +++ b/fixincludes/inclhack.def @@ -2251,16 +2251,34 @@ fix = { }; /* - * Fix C99 constant in __POINTER_SET define. + * The definitions for PTHREAD_MUTEX_INITIALIZER and similar initializers + * in pthread.h need to be constant expressions to be standard complient. + * As a result, we need to remove the void * casts in the initializers + * (see hpux11_pthread_const) and to change the __(M|C|RW)POINTER defines + * to use the long type. + */ +fix = { + hackname = hpux11_pthread_pointer; + mach = "*-hp-hpux11.[0-3]*"; + files = sys/pthread.h; + select = "(void[ \t]*\\*)(m|c|rw)(_ptr)"; + + c_fix = format; + c_fix_arg = "long\t%2%3"; + test_text = "#define __MPOINTER\t\tvoid\t *m_ptr"; +}; + +/* + * Remove void pointer cast and fix C99 constant in __POINTER_SET defines. */ fix = { hackname = hpux11_pthread_const; mach = "*-hp-hpux11.[0-3]*"; files = sys/pthread.h; - select = "^#define[ \t]*__POINTER_SET[ \t]*\\(\\(void \\*\\) 1LL\\)"; + select = "^(#define[ \t]+__POINTER_SET[ \t0,]*)(.*\\))"; c_fix = format; - c_fix_arg = "#define __POINTER_SET\t\t((void *) 1L)"; + c_fix_arg = "%11"; test_text = "#define __POINTER_SET\t\t((void *) 1LL)"; }; diff --git a/fixincludes/tests/base/sys/pthread.h b/fixincludes/tests/base/sys/pthread.h index 36f656eb6a61..2036580301b7 100644 --- a/fixincludes/tests/base/sys/pthread.h +++ b/fixincludes/tests/base/sys/pthread.h @@ -14,8 +14,13 @@ #endif /* HPUX11_LWP_RWLOCK_VALID_CHECK */ +#if defined( HPUX11_PTHREAD_POINTER_CHECK ) +#define __MPOINTER long m_ptr +#endif /* HPUX11_PTHREAD_POINTER_CHECK */ + + #if defined( HPUX11_PTHREAD_CONST_CHECK ) -#define __POINTER_SET ((void *) 1L) +#define __POINTER_SET 1 #endif /* HPUX11_PTHREAD_CONST_CHECK */