aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn David Anglin <dave@hiauly1.hia.nrc.ca>2001-06-14 03:51:26 +0000
committerBruce Korb <korbb@gcc.gnu.org>2001-06-14 03:51:26 +0000
commit5ffd49b80090449894c03b350d2279d97d535de5 (patch)
tree4df52aaba8b8d4dae5642b90eb0b616ef23c2c25
parent037e3d1fb29e6a0c3b600d886f260aa11113cd80 (diff)
downloadgcc-5ffd49b80090449894c03b350d2279d97d535de5.zip
gcc-5ffd49b80090449894c03b350d2279d97d535de5.tar.gz
gcc-5ffd49b80090449894c03b350d2279d97d535de5.tar.bz2
Blow away a duplicate definition of "pow()" for C++
From-SVN: r43358
-rw-r--r--gcc/ChangeLog4
-rw-r--r--gcc/fixinc/fixincl.x54
-rw-r--r--gcc/fixinc/inclhack.def33
3 files changed, 88 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 1deae2b..cdf54c68 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,7 @@
+2001-06-13 John David Anglin <dave@hiauly1.hia.nrc.ca>
+
+ * inclhack.def (hpux10_cpp_pow_inline): New hack.
+
2001-06-13 Richard Henderson <rth@redhat.com>
* ifcvt.c (dead_or_predicable): Fix return value last patch.
diff --git a/gcc/fixinc/fixincl.x b/gcc/fixinc/fixincl.x
index da19e6c..2dde85a 100644
--- a/gcc/fixinc/fixincl.x
+++ b/gcc/fixinc/fixincl.x
@@ -5,7 +5,7 @@
* files which are fixed to work correctly with ANSI C and placed in a
* directory that GNU C will search.
*
- * This file contains 139 fixup descriptions.
+ * This file contains 140 fixup descriptions.
*
* See README for more information.
*
@@ -1945,6 +1945,48 @@ static const char* apzHp_SysfilePatch[] = {
/* * * * * * * * * * * * * * * * * * * * * * * * * *
*
+ * Description of Hpux10_Cpp_Pow_Inline fix
+ */
+tSCC zHpux10_Cpp_Pow_InlineName[] =
+ "hpux10_cpp_pow_inline";
+
+/*
+ * File name selection pattern
+ */
+tSCC zHpux10_Cpp_Pow_InlineList[] =
+ "|math.h|";
+/*
+ * Machine/OS name selection pattern
+ */
+#define apzHpux10_Cpp_Pow_InlineMachs (const char**)NULL
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zHpux10_Cpp_Pow_InlineSelect0[] =
+ "^# +ifdef +__cplusplus\n\
+ +}\n\
+ +inline +double +pow\\(double +__d,int +__expon\\) +{\n\
+[ \t]+return +pow\\(__d,\\(double\\)__expon\\);\n\
+ +}\n\
+ +extern +\"C\" +{\n\
+#else\n\
+# +endif";
+
+#define HPUX10_CPP_POW_INLINE_TEST_CT 1
+static tTestDesc aHpux10_Cpp_Pow_InlineTests[] = {
+ { TT_EGREP, zHpux10_Cpp_Pow_InlineSelect0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Hpux10_Cpp_Pow_Inline
+ */
+static const char* apzHpux10_Cpp_Pow_InlinePatch[] = {
+ "format",
+ "",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
* Description of Hpux11_Fabsf fix
*/
tSCC zHpux11_FabsfName[] =
@@ -5424,9 +5466,9 @@ static const char* apzX11_SprintfPatch[] = {
*
* List of all fixes
*/
-#define REGEX_COUNT 146
+#define REGEX_COUNT 147
#define MACH_LIST_SIZE_LIMIT 279
-#define FIX_COUNT 139
+#define FIX_COUNT 140
/*
* Enumerate the fixes
@@ -5480,6 +5522,7 @@ typedef enum {
GNU_TYPES_FIXIDX,
HP_INLINE_FIXIDX,
HP_SYSFILE_FIXIDX,
+ HPUX10_CPP_POW_INLINE_FIXIDX,
HPUX11_FABSF_FIXIDX,
HPUX11_UINT32_C_FIXIDX,
HPUX8_BOGUS_INLINES_FIXIDX,
@@ -5814,6 +5857,11 @@ tFixDesc fixDescList[ FIX_COUNT ] = {
HP_SYSFILE_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
aHp_SysfileTests, apzHp_SysfilePatch, 0 },
+ { zHpux10_Cpp_Pow_InlineName, zHpux10_Cpp_Pow_InlineList,
+ apzHpux10_Cpp_Pow_InlineMachs,
+ HPUX10_CPP_POW_INLINE_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aHpux10_Cpp_Pow_InlineTests, apzHpux10_Cpp_Pow_InlinePatch, 0 },
+
{ zHpux11_FabsfName, zHpux11_FabsfList,
apzHpux11_FabsfMachs,
HPUX11_FABSF_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
diff --git a/gcc/fixinc/inclhack.def b/gcc/fixinc/inclhack.def
index 88018d9..7730cd2 100644
--- a/gcc/fixinc/inclhack.def
+++ b/gcc/fixinc/inclhack.def
@@ -1149,6 +1149,39 @@ fix = {
/*
+ * Delete C++ double pow (double, int) inline function from HP-UX 10
+ * math.h to prevent clash with define in c_std/bits/std_cmath.h.
+ */
+fix = {
+ hackname = hpux10_cpp_pow_inline;
+ files = math.h;
+ select = <<- END_POW_INLINE
+ ^# +ifdef +__cplusplus
+ +}
+ +inline +double +pow\(double +__d,int +__expon\) +{
+ [ ]+return +pow\(__d,\(double\)__expon\);
+ +}
+ +extern +"C" +{
+ #else
+ # +endif
+ END_POW_INLINE;
+
+ c_fix = format;
+ c_fix_arg = "";
+
+ test_text =
+ "# ifdef __cplusplus\n"
+ " }\n"
+ " inline double pow(double __d,int __expon) {\n"
+ "\t return pow(__d,(double)__expon);\n"
+ " }\n"
+ ' extern "C"' " {\n"
+ "#else\n"
+ "# endif";
+};
+
+
+/*
* Keep HP-UX 11 from stomping on C++ math namespace
* with defines for fabsf.
*/