libstdc++: Use qualified-id for class member constant [PR101937]
The expression ctx._M_indent is not a constant expression when ctx is a reference parameter, even though _M_indent is an enumerator. Rename it to _S_indent to be consistent with our conventions, and refer to it as PrintContext::_S_indent to be valid C++ code (at least until P2280 is accepted as a DR). Signed-off-by: Jonathan Wakely <jwakely@redhat.com> libstdc++-v3/ChangeLog: PR libstdc++/101937 * src/c++11/debug.cc (PrintContext::_M_indent): Replace with a static data member. (print_word): Use qualified-id to access it.
This commit is contained in:
parent
db853ff78a
commit
6c25932ac3
@ -573,8 +573,8 @@ namespace
|
||||
: _M_max_length(78), _M_column(1), _M_first_line(true), _M_wordwrap(false)
|
||||
{ get_max_length(_M_max_length); }
|
||||
|
||||
static constexpr int _S_indent = 4;
|
||||
std::size_t _M_max_length;
|
||||
enum { _M_indent = 4 } ;
|
||||
std::size_t _M_column;
|
||||
bool _M_first_line;
|
||||
bool _M_wordwrap;
|
||||
@ -603,7 +603,7 @@ namespace
|
||||
if (length == 0)
|
||||
return;
|
||||
|
||||
// Consider first '\n' at begining cause it impacts column.
|
||||
// First consider '\n' at the beginning because it impacts the column.
|
||||
if (word[0] == '\n')
|
||||
{
|
||||
fprintf(stderr, "\n");
|
||||
@ -625,8 +625,8 @@ namespace
|
||||
// If this isn't the first line, indent
|
||||
if (ctx._M_column == 1 && !ctx._M_first_line)
|
||||
{
|
||||
const char spacing[ctx._M_indent + 1] = " ";
|
||||
print_raw(ctx, spacing, ctx._M_indent);
|
||||
const char spacing[PrintContext::_S_indent + 1] = " ";
|
||||
print_raw(ctx, spacing, PrintContext::_S_indent);
|
||||
}
|
||||
|
||||
int written = fprintf(stderr, "%.*s", (int)length, word);
|
||||
|
Loading…
Reference in New Issue
Block a user