diff options
author | Sergey Prigogin | 2012-05-17 19:37:43 +0000 |
---|---|---|
committer | Sergey Prigogin | 2012-05-17 19:37:43 +0000 |
commit | 2d5f3da68e1b026bfcfcaa68ac47d1ee9e63661b (patch) | |
tree | 03ba14ceaac2a76a92a94695bd97084fb98288d9 /codan | |
parent | 3fc1ce92e7424b3acbae891cb60795108ccd610a (diff) | |
download | org.eclipse.cdt-2d5f3da68e1b026bfcfcaa68ac47d1ee9e63661b.tar.gz org.eclipse.cdt-2d5f3da68e1b026bfcfcaa68ac47d1ee9e63661b.tar.xz org.eclipse.cdt-2d5f3da68e1b026bfcfcaa68ac47d1ee9e63661b.zip |
Fixed an NPE.
Diffstat (limited to 'codan')
-rw-r--r-- | codan/org.eclipse.cdt.codan.checkers/src/org/eclipse/cdt/codan/internal/checkers/ClassMembersInitializationChecker.java | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/codan/org.eclipse.cdt.codan.checkers/src/org/eclipse/cdt/codan/internal/checkers/ClassMembersInitializationChecker.java b/codan/org.eclipse.cdt.codan.checkers/src/org/eclipse/cdt/codan/internal/checkers/ClassMembersInitializationChecker.java index 96424e7596f..ef69af9fe9c 100644 --- a/codan/org.eclipse.cdt.codan.checkers/src/org/eclipse/cdt/codan/internal/checkers/ClassMembersInitializationChecker.java +++ b/codan/org.eclipse.cdt.codan.checkers/src/org/eclipse/cdt/codan/internal/checkers/ClassMembersInitializationChecker.java @@ -35,6 +35,7 @@ import org.eclipse.cdt.core.dom.ast.ICompositeType; import org.eclipse.cdt.core.dom.ast.IEnumeration; import org.eclipse.cdt.core.dom.ast.IField; import org.eclipse.cdt.core.dom.ast.IPointerType; +import org.eclipse.cdt.core.dom.ast.IProblemBinding; import org.eclipse.cdt.core.dom.ast.IType; import org.eclipse.cdt.core.dom.ast.ITypedef; import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTFunctionDefinition; @@ -173,10 +174,13 @@ public class ClassMembersInitializationChecker extends AbstractIndexAstChecker { Set<IField> actualConstructorFields = constructorsStack.peek(); if (!actualConstructorFields.isEmpty()) { IBinding binding = name.resolveBinding(); - IField equivalentFieldBinding = getContainedEquivalentBinding(actualConstructorFields, binding, name.getTranslationUnit().getIndex()); - if (equivalentFieldBinding != null) { - if ((CPPVariableReadWriteFlags.getReadWriteFlags(name) & PDOMName.WRITE_ACCESS) != 0) { - actualConstructorFields.remove(equivalentFieldBinding); + if (binding != null && !(binding instanceof IProblemBinding)) { + IField equivalentFieldBinding = getContainedEquivalentBinding( + actualConstructorFields, binding, name.getTranslationUnit().getIndex()); + if (equivalentFieldBinding != null) { + if ((CPPVariableReadWriteFlags.getReadWriteFlags(name) & PDOMName.WRITE_ACCESS) != 0) { + actualConstructorFields.remove(equivalentFieldBinding); + } } } } |