diff --git a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/AST2CPPTests.java b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/AST2CPPTests.java index 9ae1e0512cc..4ac2331ac42 100644 --- a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/AST2CPPTests.java +++ b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/AST2CPPTests.java @@ -5481,4 +5481,16 @@ public class AST2CPPTests extends AST2BaseTest { assertTrue(binding instanceof IFunction); assertFalse(binding instanceof IProblemBinding); } + + + + + // #define _GLIBCXX_VISIBILITY(V) __attribute__ ((__visibility__ (#V))) + // #define _GLIBCXX_BEGIN_NAMESPACE(X) namespace X _GLIBCXX_VISIBILITY(default) { + // _GLIBCXX_BEGIN_NAMESPACE(std) + // } // end the namespace + public void testBug195701() throws Exception { + StringBuffer buffer = getContents(1)[0]; + parse( buffer.toString(), ParserLanguage.CPP, true, true ); + } } diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/GNUCPPSourceParser.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/GNUCPPSourceParser.java index e5e8bff284e..ae95906461d 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/GNUCPPSourceParser.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/GNUCPPSourceParser.java @@ -2650,6 +2650,9 @@ public class GNUCPPSourceParser extends AbstractGNUSourceCodeParser { } else name = createName(); + // bug 195701, gcc 4.2 allows visibility attribute for namespaces. + __attribute_decl_seq(true, false); + if (LT(1) == IToken.tLBRACE) { consume(); ICPPASTNamespaceDefinition namespaceDefinition = createNamespaceDefinition();