diff options
author | Markus Schorn | 2008-07-28 11:52:19 +0000 |
---|---|---|
committer | Markus Schorn | 2008-07-28 11:52:19 +0000 |
commit | 6a68a6691abfceae5500df802cf0ed46e83c34cb (patch) | |
tree | 869a5b72b15a1d7016074da1656737f0e22ff649 | |
parent | c25ad2706b9ec4252f5abe0291207b0ce21076f4 (diff) | |
download | org.eclipse.cdt-6a68a6691abfceae5500df802cf0ed46e83c34cb.tar.gz org.eclipse.cdt-6a68a6691abfceae5500df802cf0ed46e83c34cb.tar.xz org.eclipse.cdt-6a68a6691abfceae5500df802cf0ed46e83c34cb.zip |
Typeid for pointer to member, bug 242197.
2 files changed, 17 insertions, 1 deletions
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 6125af78517..2cc949f3faa 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 @@ -5951,5 +5951,18 @@ public class AST2CPPTests extends AST2BaseTest { public void testAdjustmentOfParameterTypes_Bug239975() throws Exception { parseAndCheckBindings(getAboveComment(), ParserLanguage.CPP); } - + + // class A { + // public: + // void m(int c); + // }; + // + // void test(char c) { + // void (A::* ptr2mem)(char); + // ptr2mem= reinterpret_cast<void (A::*)(char)>(&A::m); + // ptr2mem= (void (A::*)(int))(0); + // } + public void testTypeIdForPtrToMember_Bug242197() throws Exception { + parseAndCheckBindings(getAboveComment(), ParserLanguage.CPP); + } } 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 676c11e93ae..0cca1f2668b 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 @@ -2763,6 +2763,9 @@ public class GNUCPPSourceParser extends AbstractGNUSourceCodeParser { } identifier= name(); + if (identifier.getLastToken().getType() == IToken.tCOLONCOLON) + throwBacktrack(identifier.getLastToken()); + endOffset= identifier.getLastToken().getEndOffset(); encounteredTypename= true; break; |