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)
|
: _M_max_length(78), _M_column(1), _M_first_line(true), _M_wordwrap(false)
|
||||||
{ get_max_length(_M_max_length); }
|
{ get_max_length(_M_max_length); }
|
||||||
|
|
||||||
|
static constexpr int _S_indent = 4;
|
||||||
std::size_t _M_max_length;
|
std::size_t _M_max_length;
|
||||||
enum { _M_indent = 4 } ;
|
|
||||||
std::size_t _M_column;
|
std::size_t _M_column;
|
||||||
bool _M_first_line;
|
bool _M_first_line;
|
||||||
bool _M_wordwrap;
|
bool _M_wordwrap;
|
||||||
@ -603,7 +603,7 @@ namespace
|
|||||||
if (length == 0)
|
if (length == 0)
|
||||||
return;
|
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')
|
if (word[0] == '\n')
|
||||||
{
|
{
|
||||||
fprintf(stderr, "\n");
|
fprintf(stderr, "\n");
|
||||||
@ -625,8 +625,8 @@ namespace
|
|||||||
// If this isn't the first line, indent
|
// If this isn't the first line, indent
|
||||||
if (ctx._M_column == 1 && !ctx._M_first_line)
|
if (ctx._M_column == 1 && !ctx._M_first_line)
|
||||||
{
|
{
|
||||||
const char spacing[ctx._M_indent + 1] = " ";
|
const char spacing[PrintContext::_S_indent + 1] = " ";
|
||||||
print_raw(ctx, spacing, ctx._M_indent);
|
print_raw(ctx, spacing, PrintContext::_S_indent);
|
||||||
}
|
}
|
||||||
|
|
||||||
int written = fprintf(stderr, "%.*s", (int)length, word);
|
int written = fprintf(stderr, "%.*s", (int)length, word);
|
||||||
|
Loading…
Reference in New Issue
Block a user