From e60f8efdf3901e31ff40b8dcd044c73541c300e1 Mon Sep 17 00:00:00 2001 From: Sergey Prigogin Date: Sun, 24 Jan 2016 09:08:13 -0800 Subject: [PATCH] Bug 486149 - Name resolution problem with dependent conversion operator Corrected two bugs pointed out in https://git.eclipse.org/r/#/c/64940/1 Change-Id: I44ec5b28a40db73857a7b687c3c784583810962b --- .../cdt/internal/core/dom/parser/cpp/ImplicitsAnalysis.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/ImplicitsAnalysis.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/ImplicitsAnalysis.java index b92fde045b2..fb09e6bf341 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/ImplicitsAnalysis.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/ImplicitsAnalysis.java @@ -164,7 +164,8 @@ final class ImplicitsAnalysis { hasCopyAssignmentOperator = true; } - if (hasCopyConstructor && hasDestructor && hasCopyAssignmentOperator && baseSpecifiers.length == 0) { + if (hasCopyConstructor && hasDestructor && hasCopyAssignmentOperator && baseSpecifiers.length == 0 + && hasNonStaticFields) { break; // Nothing else to look for. } } else if (dcltor instanceof ICPPASTFieldDeclarator && @@ -212,7 +213,7 @@ final class ImplicitsAnalysis { ICPPBase[] bases = ClassTypeHelper.getBases(classType, compositeTypeSpecifier); for (ICPPBase base : bases) { if (base.isVirtual()) - return true; + return false; } ICPPClassType[] baseClasses = ClassTypeHelper.getAllBases(classType, compositeTypeSpecifier);