This is the mail archive of the
libstdc++@gcc.gnu.org
mailing list for the libstdc++ project.
[fixincludes] solaris_pow_int_overload should use __cplusplus
- From: Rainer Orth <ro at CeBiTec dot Uni-Bielefeld dot DE>
- To: gcc-patches at gcc dot gnu dot org
- Cc: Bruce Korb <bkorb at gnu dot org>, libstdc++ at gcc dot gnu dot org
- Date: Thu, 16 May 2013 15:41:37 +0200
- Subject: [fixincludes] solaris_pow_int_overload should use __cplusplus
Work is going on to incorporate all applicable fixincludes fixes into
the Solaris headers proper. One fix is currently problematic since it
uses an G++-internal macro (__GXX_EXPERIMENTAL_CXX0X__) where libstdc++
<cmath> already switched to testing __cplusplus. The following patch
updates the fix to match <cmath>.
Tested by mainline bootstraps on i386-pc-solaris2.11,
sparc-sun-solaris2.11 and 4.8 bootstrap on i386-pc-solaris2.10.
Ok for mainline and 4.8 branch if they pass?
Thanks.
Rainer
2013-05-15 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
* inclhack.def (solaris_pow_int_overload): Update comment.
Change guard to match <cmath>.
* fixincl.x: Regenerate.
* tests/base/iso/math_iso.h [SOLARIS_POW_INT_OVERLOAD_CHECK]:
Matching change.
# HG changeset patch
# Parent c4272fed2b181caf1d8a82b6c0c727d0371c4f18
solaris_pow_int_overload should use __cplusplus
diff --git a/fixincludes/inclhack.def b/fixincludes/inclhack.def
--- a/fixincludes/inclhack.def
+++ b/fixincludes/inclhack.def
@@ -3474,7 +3474,7 @@ fix = {
/*
- * The pow overloads with int were removed in C++ 2011.
+ * The pow overloads with int were removed in C++ 2011 DR 550.
*/
fix = {
hackname = solaris_pow_int_overload;
@@ -3483,7 +3483,7 @@ fix = {
select = "^[ \t]*inline [a-z ]* pow\\([^()]*, int [^()]*\\)"
" *\\{[^{}]*\n[^{}]*\\}";
c_fix = format;
- c_fix_arg = "#ifndef __GXX_EXPERIMENTAL_CXX0X__\n%0\n#endif";
+ c_fix_arg = "#if __cplusplus < 201103L\n%0\n#endif";
test_text =
" inline long double pow(long double __X, int __Y) { return\n"
diff --git a/fixincludes/tests/base/iso/math_iso.h b/fixincludes/tests/base/iso/math_iso.h
--- a/fixincludes/tests/base/iso/math_iso.h
+++ b/fixincludes/tests/base/iso/math_iso.h
@@ -10,7 +10,7 @@
#if defined( SOLARIS_POW_INT_OVERLOAD_CHECK )
-#ifndef __GXX_EXPERIMENTAL_CXX0X__
+#if __cplusplus < 201103L
inline long double pow(long double __X, int __Y) { return
__powl(__X, (long double) (__Y)); }
#endif
--
-----------------------------------------------------------------------------
Rainer Orth, Center for Biotechnology, Bielefeld University