From ff52061e5238836ecfb00ebcf5fa053df22e5468 Mon Sep 17 00:00:00 2001 From: Dale Marchand Date: Tue, 17 Jun 2014 17:41:39 -0700 Subject: [PATCH] Fixed compilation error on RHEL 5.10. Nesting the namespace "Internal" inside of other namespaces and using sequential "using namespace" directives *or* relying on a "using namespace" directive to resolve a method name that contained the "Internal" namespace for resolution resulted in ambiguous resolution errors when compiling with the RHEL5.10 stock compiler (GCC 4.1.2). A sample error is provided below: Compilation error encountered was: reference to 'Internal' is ambiguous /usr/lib/gcc/x86_64-redhat- candidates are: namespace Internal { } qt-creator/src/libs/cplusplus/PPToken.h:106: error: namespace CPlusPlus::Internal { } Modifying the using namespace directives to reflect the nested nature of the namespace names resolved the compilation errors. For example: using namespace CppEditor; using namespace Internal; produced errors. However, using namespace CppEditor; using namespace CppEditor::Internal; resolved the compilation errors by removing the ambiguity. Change-Id: I6d5051e20acb2c147bd7ee1c6c6e1e3b2b4ff0f9 Reviewed-by: Erik Verbruggen --- src/libs/cplusplus/PPToken.cpp | 3 ++- src/plugins/cppeditor/cppelementevaluator.cpp | 2 +- src/plugins/cppeditor/cppincludehierarchy.cpp | 2 +- src/plugins/cppeditor/cppsnippetprovider.cpp | 2 +- src/plugins/cppeditor/cpptypehierarchy.cpp | 2 +- 5 files changed, 6 insertions(+), 5 deletions(-) diff --git a/src/libs/cplusplus/PPToken.cpp b/src/libs/cplusplus/PPToken.cpp index 7b34c1ed35a..232569616db 100644 --- a/src/libs/cplusplus/PPToken.cpp +++ b/src/libs/cplusplus/PPToken.cpp @@ -32,6 +32,7 @@ #include using namespace CPlusPlus; +using namespace CPlusPlus::Internal; bool ByteArrayRef::startsWith(const char *s) const { @@ -52,7 +53,7 @@ int ByteArrayRef::count(char ch) const return num; } -void Internal::PPToken::squeezeSource() +void PPToken::squeezeSource() { if (hasSource()) { m_src = m_src.mid(offset, f.length); diff --git a/src/plugins/cppeditor/cppelementevaluator.cpp b/src/plugins/cppeditor/cppelementevaluator.cpp index 0da38d6958a..09fbd8a875b 100644 --- a/src/plugins/cppeditor/cppelementevaluator.cpp +++ b/src/plugins/cppeditor/cppelementevaluator.cpp @@ -42,7 +42,7 @@ #include using namespace CppEditor; -using namespace Internal; +using namespace CppEditor::Internal; using namespace CPlusPlus; namespace { diff --git a/src/plugins/cppeditor/cppincludehierarchy.cpp b/src/plugins/cppeditor/cppincludehierarchy.cpp index e32467d2380..1af8f2595a0 100644 --- a/src/plugins/cppeditor/cppincludehierarchy.cpp +++ b/src/plugins/cppeditor/cppincludehierarchy.cpp @@ -50,7 +50,7 @@ #include using namespace CppEditor; -using namespace Internal; +using namespace CppEditor::Internal; using namespace Utils; namespace CppEditor { diff --git a/src/plugins/cppeditor/cppsnippetprovider.cpp b/src/plugins/cppeditor/cppsnippetprovider.cpp index 4da115396ff..88f2f28750d 100644 --- a/src/plugins/cppeditor/cppsnippetprovider.cpp +++ b/src/plugins/cppeditor/cppsnippetprovider.cpp @@ -42,7 +42,7 @@ #include using namespace CppEditor; -using namespace Internal; +using namespace CppEditor::Internal; CppSnippetProvider::CppSnippetProvider() : TextEditor::ISnippetProvider() diff --git a/src/plugins/cppeditor/cpptypehierarchy.cpp b/src/plugins/cppeditor/cpptypehierarchy.cpp index 74271141062..b04808d678c 100644 --- a/src/plugins/cppeditor/cpptypehierarchy.cpp +++ b/src/plugins/cppeditor/cpptypehierarchy.cpp @@ -44,7 +44,7 @@ #include using namespace CppEditor; -using namespace Internal; +using namespace CppEditor::Internal; using namespace Utils; namespace {