summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNathan Ridge2013-01-29 19:48:13 (EST)
committerSergey Prigogin2013-01-29 19:48:13 (EST)
commit86dcb5b8d178717d46499d662ab383845df0b0b0 (patch)
tree74c0e3c48e891049fe0c43c7f03a63e5ec4f1160
parent338dc4173df8e04d8a67dc49334431a1bd688020 (diff)
downloadorg.eclipse.cdt-86dcb5b8d178717d46499d662ab383845df0b0b0.zip
org.eclipse.cdt-86dcb5b8d178717d46499d662ab383845df0b0b0.tar.gz
org.eclipse.cdt-86dcb5b8d178717d46499d662ab383845df0b0b0.tar.bz2
Bug 399353 - Error involving __is_base_of
Reviewed-on: https://git.eclipse.org/r/9989 Reviewed-by: Sergey Prigogin <eclipse.sprigogin@gmail.com> IP-Clean: Sergey Prigogin <eclipse.sprigogin@gmail.com> Tested-by: Sergey Prigogin <eclipse.sprigogin@gmail.com>
-rw-r--r--core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/AST2CPPTests.java14
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTBinaryTypeIdExpression.java4
2 files changed, 16 insertions, 2 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 7abd5e5..cf82d2d 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
@@ -10087,4 +10087,18 @@ public class AST2CPPTests extends AST2TestBase {
helper.assertNonProblemOnFirstIdentifier("fint({vbool");
helper.assertNonProblemOnFirstIdentifier("fint({vchar");
}
+
+ // template <bool>
+ // struct enable_if {
+ // };
+ // template <>
+ // struct enable_if<true> {
+ // typedef void type;
+ // };
+ // struct base {};
+ // struct derived : base {};
+ // typedef enable_if<__is_base_of(base, derived)>::type T;
+ public void testIsBaseOf_399353() throws Exception {
+ parseAndCheckBindings(getAboveComment(), CPP, true);
+ }
}
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTBinaryTypeIdExpression.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTBinaryTypeIdExpression.java
index 7953101..a0a5080 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTBinaryTypeIdExpression.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTBinaryTypeIdExpression.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2004, 2011 IBM Corporation and others.
+ * Copyright (c) 2004, 2013 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
@@ -124,7 +124,7 @@ public class CPPASTBinaryTypeIdExpression extends ASTNode implements ICPPASTExpr
fEvaluation= EvalFixed.INCOMPLETE;
} else {
IType t1= CPPVisitor.createType(fOperand1);
- IType t2= CPPVisitor.createType(fOperand1);
+ IType t2= CPPVisitor.createType(fOperand2);
if (t1 == null || t2 == null) {
fEvaluation= EvalFixed.INCOMPLETE;
} else {