Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarkus Schorn2008-07-28 11:52:19 +0000
committerMarkus Schorn2008-07-28 11:52:19 +0000
commit6a68a6691abfceae5500df802cf0ed46e83c34cb (patch)
tree869a5b72b15a1d7016074da1656737f0e22ff649
parentc25ad2706b9ec4252f5abe0291207b0ce21076f4 (diff)
downloadorg.eclipse.cdt-6a68a6691abfceae5500df802cf0ed46e83c34cb.tar.gz
org.eclipse.cdt-6a68a6691abfceae5500df802cf0ed46e83c34cb.tar.xz
org.eclipse.cdt-6a68a6691abfceae5500df802cf0ed46e83c34cb.zip
Typeid for pointer to member, bug 242197.
-rw-r--r--core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/AST2CPPTests.java15
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/GNUCPPSourceParser.java3
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;

Back to the top