On 18 May 2018 at 19:13, Jonathan Wakely <jwak...@redhat.com> wrote: > In C++11 and C++14 any odr-use of these constants requires a definition > at namespace-scope. In C++17 they are implicitly inline and so the > namespace-scope redeclarations are redundant (and allowing them is > deprecated). > > PR libstdc++/85098 > * include/bits/regex.h [__cplusplus < 201703L] (basic_regex::icase) > (basic_regex::nosubs, basic_regex::optimize, basic_regex::collate) > (basic_regex::ECMAScript, basic_regex::basic, basic_regex::extended) > (basic_regex::awk, basic_regex::grep, basic_regex::egrep): Add > definitions. > * include/bits/regex_automaton.h (_NFA::_M_insert_state): Adjust > whitespace. > * include/bits/regex_compiler.tcc (__INSERT_REGEX_MATCHER): Add > braces around body of do-while. > * testsuite/28_regex/basic_regex/85098.cc: New > > I think we should backport this to the branches, although nobody seems > to have ever noticed the bug until recently (and it's not a > regression).
+1 for backporting this.