stdcxx-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From se...@apache.org
Subject svn commit: r520129 - /incubator/stdcxx/trunk/include/rw/_config-xlc.h
Date Mon, 19 Mar 2007 22:29:52 GMT
Author: sebor
Date: Mon Mar 19 15:29:51 2007
New Revision: 520129

URL: http://svn.apache.org/viewvc?view=rev&rev=520129
Log:
2007-03-19  Martin Sebor  <sebor@roguewave.com>

	STDCXX-300
	* _config-xlc.h (_RWSTD_NO_EXPLICIT_INSTANTIATION_BEFORE_DEFINITION,
	_RWSTD_NO_EXTERN_TEMPLATE_BEFORE_DEFINITION): Defined for IBM XLC++
	8.0 when _RWSTD_NO_INSTANTIATE_DEFAULT_ARGS is also #defined.

Modified:
    incubator/stdcxx/trunk/include/rw/_config-xlc.h

Modified: incubator/stdcxx/trunk/include/rw/_config-xlc.h
URL: http://svn.apache.org/viewvc/incubator/stdcxx/trunk/include/rw/_config-xlc.h?view=diff&rev=520129&r1=520128&r2=520129
==============================================================================
--- incubator/stdcxx/trunk/include/rw/_config-xlc.h (original)
+++ incubator/stdcxx/trunk/include/rw/_config-xlc.h Mon Mar 19 15:29:51 2007
@@ -93,12 +93,30 @@
 #  endif   // REENTRANT && LP64
 #endif   // AIX
 
-#if __IBMCPP__ == 800 && !defined (_RWSTDDEBUG)
-   // work around an XLC++ 8.0 ICE (STDCXX-159)
-#  if defined (_RWSTD_NO_EXTERN_TEMPLATE)
-#    define _RWSTD_NO_EXPLICIT_INSTANTIATION
-#  endif   // _RWSTD_NO_EXTERN_TEMPLATE
-#endif   // XLC++ 8.0 without debugging
+#if __IBMCPP__ == 800
+
+#  if !defined (__TEMPINC__) && defined (_RWSTD_NO_INSTANTIATE_DEFAULT_ARGS)
+     // disable explicit instantiation directives occuring prior
+     // the definition of out-of-line member functions of class
+     // templates in .cc files (i.e., prior their explicit
+     // #inclusion at the bottom of each header)
+#    ifndef _RWSTD_NO_EXPLICIT_INSTANTIATION_BEFORE_DEFINITION
+#      define _RWSTD_NO_EXPLICIT_INSTANTIATION_BEFORE_DEFINITION
+#    endif
+#   ifndef _RWSTD_NO_EXTERN_TEMPLATE_BEFORE_DEFINITION
+#      define _RWSTD_NO_EXTERN_TEMPLATE_BEFORE_DEFINITION
+#    endif
+#  endif   // !__TEMPINC__ && _RWSTD_NO_INSTANTIATE_DEFAULT_ARGS
+
+#  ifndef _RWSTDDEBUG
+     // work around an XLC++ 8.0 ICE (STDCXX-159)
+#    if defined (_RWSTD_NO_EXTERN_TEMPLATE)
+#      define _RWSTD_NO_EXPLICIT_INSTANTIATION
+#    endif   // _RWSTD_NO_EXTERN_TEMPLATE
+#  endif   // without debugging
+
+#endif   // XLC++ 8.0
+
 
 #ifndef __TEMPINC__
    // avoid VAC++ 7.0 diagnostic 1540-2910 (I) The template uses



Mime
View raw message