2017-12-04 Jonathan Wakely <jwakely@redhat.com>
+ * include/bits/regex_compiler.tcc: Use C-style comment to work around
+ PR preprocessor/61638.
+ (__INSERT_REGEX_MATCHER): Replace GNU extension with __VA_ARGS__.
+
* config/io/basic_file_stdio.h (__basic_file): Remove name of unused
parameter.
* include/bits/boost_concept_check.h: Add pragmas to disable
// FIXME make comments doxygen format.
+/*
// This compiler refers to "Regular Expression Matching Can Be Simple And Fast"
-// (http://swtch.com/~rsc/regexp/regexp1.html"),
+// (http://swtch.com/~rsc/regexp/regexp1.html),
// but doesn't strictly follow it.
//
// When compiling, states are *chained* instead of tree- or graph-constructed.
// article.
//
// That's why we introduced dummy node here ------ "end_tag" is a dummy node.
-// All dummy node will be eliminated at the end of compiling process.
+// All dummy nodes will be eliminated at the end of compilation.
+*/
namespace std _GLIBCXX_VISIBILITY(default)
{
return true;
}
-#define __INSERT_REGEX_MATCHER(__func, args...)\
+#define __INSERT_REGEX_MATCHER(__func, ...)\
do\
if (!(_M_flags & regex_constants::icase))\
if (!(_M_flags & regex_constants::collate))\
- __func<false, false>(args);\
+ __func<false, false>(__VA_ARGS__);\
else\
- __func<false, true>(args);\
+ __func<false, true>(__VA_ARGS__);\
else\
if (!(_M_flags & regex_constants::collate))\
- __func<true, false>(args);\
+ __func<true, false>(__VA_ARGS__);\
else\
- __func<true, true>(args);\
+ __func<true, true>(__VA_ARGS__);\
while (false)
template<typename _TraitsT>