Building with GCC 5, with commit 3cc27ed5b6fb4253d3fe2139dcc6295e85372a3a
"diagnostics: convert diagnostic_t to enum class diagnostics::kind", we got:

    ../../source-gcc/gcc/diagnostics/option-classifier.cc: In member function 
‘diagnostics::kind 
diagnostics::option_classifier::update_effective_level_from_pragmas(diagnostics::diagnostic_info*)
 const’:
    ../../source-gcc/gcc/diagnostics/option-classifier.cc:212:20: error: ‘kind’ 
is not a class, namespace, or enumeration
            if (kind != kind::unspecified)
                        ^
    make[2]: *** [Makefile:1212: diagnostics/option-classifier.o] Error 1

Resolve this similar to, for example,
commit r14-4521-g08d0f840dc7ad212ab75d094373b01cbfc004e67
"analyzer: fix build with gcc < 6".

        gcc/
        * diagnostics/option-classifier.cc
        (update_effective_level_from_pragmas): In presence of local
        variable 'kind', explicitly state 'diagnostics::' scope for 'kind'
        enum.
---
 gcc/diagnostics/option-classifier.cc | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/gcc/diagnostics/option-classifier.cc 
b/gcc/diagnostics/option-classifier.cc
index 98316b46f1f..f98fd55943f 100644
--- a/gcc/diagnostics/option-classifier.cc
+++ b/gcc/diagnostics/option-classifier.cc
@@ -209,7 +209,7 @@ update_effective_level_from_pragmas (diagnostic_info 
*diagnostic) const
          if (opt_id == 0 || opt_id == diagnostic->m_option_id)
            {
              enum kind kind = p->kind;
-             if (kind != kind::unspecified)
+             if (kind != diagnostics::kind::unspecified)
                diagnostic->m_kind = kind;
              return kind;
            }
-- 
2.34.1

Reply via email to