From 6178a44fc20411235b5403d867e69dfadb2852f5 Mon Sep 17 00:00:00 2001
From: Roberto Raggi <roberto.raggi@nokia.com>
Date: Thu, 19 Feb 2009 13:52:05 +0100
Subject: [PATCH] Warning for using-directive in class scope.

---
 src/shared/cplusplus/CheckDeclaration.cpp | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/src/shared/cplusplus/CheckDeclaration.cpp b/src/shared/cplusplus/CheckDeclaration.cpp
index f8ddde8b48e..038583c27d4 100644
--- a/src/shared/cplusplus/CheckDeclaration.cpp
+++ b/src/shared/cplusplus/CheckDeclaration.cpp
@@ -389,6 +389,11 @@ bool CheckDeclaration::visit(UsingDirectiveAST *ast)
     UsingNamespaceDirective *u = control()->newUsingNamespaceDirective(ast->firstToken(), name);
     ast->symbol = u;
     _scope->enterSymbol(u);
+
+    if (! (_scope->isBlockScope() || _scope->isNamespaceScope()))
+        translationUnit()->error(ast->firstToken(),
+                                 "using-directive not within namespace or block scope");
+
     return false;
 }
 
-- 
GitLab