This is the mail archive of the libstdc++@gcc.gnu.org mailing list for the libstdc++ project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[patch] Avoid #ifdef _GLIBCXX_DEBUG in regex_compiler.h


This uses an NSDMI and the _GLIBCXX_DEBUG_ONLY macro to remove several
ugly #ifdef _GLIBCXX_DEBUG conditionals in <bits/regex_compiler.h>

Tested powerpc64le-linux, committed to trunk.

commit e53218fa5a7eedf76f409ab41f2e24776bb5195e
Author: Jonathan Wakely <jwakely@redhat.com>
Date:   Mon Sep 7 15:12:03 2015 +0100

    Avoid #ifdef _GLIBCXX_DEBUG in regex_compiler.h
    
    	* include/bits/regex_compiler.h (_BracketMatcher::_M_is_ready):
    	Initialize using NSDMI and set using _GLIBCXX_DEBUG_ONLY.

diff --git a/libstdc++-v3/include/bits/regex_compiler.h b/libstdc++-v3/include/bits/regex_compiler.h
index 0cb0c04..07a9ed3 100644
--- a/libstdc++-v3/include/bits/regex_compiler.h
+++ b/libstdc++-v3/include/bits/regex_compiler.h
@@ -370,9 +370,6 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
 		      const _TraitsT& __traits)
       : _M_class_set(0), _M_translator(__traits), _M_traits(__traits),
       _M_is_non_matching(__is_non_matching)
-#ifdef _GLIBCXX_DEBUG
-      , _M_is_ready(false)
-#endif
       { }
 
       bool
@@ -386,9 +383,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
       _M_add_char(_CharT __c)
       {
 	_M_char_set.push_back(_M_translator._M_translate(__c));
-#ifdef _GLIBCXX_DEBUG
-	_M_is_ready = false;
-#endif
+	_GLIBCXX_DEBUG_ONLY(_M_is_ready = false);
       }
 
       _StringT
@@ -399,9 +394,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
 	if (__st.empty())
 	  __throw_regex_error(regex_constants::error_collate);
 	_M_char_set.push_back(_M_translator._M_translate(__st[0]));
-#ifdef _GLIBCXX_DEBUG
-	_M_is_ready = false;
-#endif
+	_GLIBCXX_DEBUG_ONLY(_M_is_ready = false);
 	return __st;
       }
 
@@ -415,9 +408,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
 	__st = _M_traits.transform_primary(__st.data(),
 					   __st.data() + __st.size());
 	_M_equiv_set.push_back(__st);
-#ifdef _GLIBCXX_DEBUG
-	_M_is_ready = false;
-#endif
+	_GLIBCXX_DEBUG_ONLY(_M_is_ready = false);
       }
 
       // __neg should be true for \D, \S and \W only.
@@ -433,9 +424,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
 	  _M_class_set |= __mask;
 	else
 	  _M_neg_class_set.push_back(__mask);
-#ifdef _GLIBCXX_DEBUG
-	_M_is_ready = false;
-#endif
+	_GLIBCXX_DEBUG_ONLY(_M_is_ready = false);
       }
 
       void
@@ -445,9 +434,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
 	  __throw_regex_error(regex_constants::error_range);
 	_M_range_set.push_back(make_pair(_M_translator._M_transform(__l),
 					 _M_translator._M_transform(__r)));
-#ifdef _GLIBCXX_DEBUG
-	_M_is_ready = false;
-#endif
+	_GLIBCXX_DEBUG_ONLY(_M_is_ready = false);
       }
 
       void
@@ -457,9 +444,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
 	auto __end = std::unique(_M_char_set.begin(), _M_char_set.end());
 	_M_char_set.erase(__end, _M_char_set.end());
 	_M_make_cache(_UseCache());
-#ifdef _GLIBCXX_DEBUG
-	_M_is_ready = true;
-#endif
+	_GLIBCXX_DEBUG_ONLY(_M_is_ready = true);
       }
 
     private:
@@ -507,7 +492,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
       bool                                      _M_is_non_matching;
       _CacheT					_M_cache;
 #ifdef _GLIBCXX_DEBUG
-      bool                                      _M_is_ready;
+      bool                                      _M_is_ready = false;
 #endif
     };
 

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]