diff --git a/codan/org.eclipse.cdt.codan.checkers/src/org/eclipse/cdt/codan/internal/checkers/AssignmentOperatorChecker.java b/codan/org.eclipse.cdt.codan.checkers/src/org/eclipse/cdt/codan/internal/checkers/AssignmentOperatorChecker.java index c3196b940fe..167b6dd0bfd 100644 --- a/codan/org.eclipse.cdt.codan.checkers/src/org/eclipse/cdt/codan/internal/checkers/AssignmentOperatorChecker.java +++ b/codan/org.eclipse.cdt.codan.checkers/src/org/eclipse/cdt/codan/internal/checkers/AssignmentOperatorChecker.java @@ -112,7 +112,7 @@ public class AssignmentOperatorChecker extends AbstractIndexAstChecker { reportProblem(MISS_SELF_CHECK_ID, info.decl); } info.decl = null; - } else { + } else if (expression.getPropertyInParent() != ICPPASTFunctionDeclarator.NOEXCEPT_EXPRESSION) { reportProblem(MISS_SELF_CHECK_ID, info.decl); info.decl = null; } diff --git a/codan/org.eclipse.cdt.codan.core.tests/src/org/eclipse/cdt/codan/core/internal/checkers/AssignmentOperatorCheckerTest.java b/codan/org.eclipse.cdt.codan.core.tests/src/org/eclipse/cdt/codan/core/internal/checkers/AssignmentOperatorCheckerTest.java index 3d687bd8c8c..1185530036a 100644 --- a/codan/org.eclipse.cdt.codan.core.tests/src/org/eclipse/cdt/codan/core/internal/checkers/AssignmentOperatorCheckerTest.java +++ b/codan/org.eclipse.cdt.codan.core.tests/src/org/eclipse/cdt/codan/core/internal/checkers/AssignmentOperatorCheckerTest.java @@ -47,6 +47,22 @@ public class AssignmentOperatorCheckerTest extends CheckerTestCase { checkNoErrorsOfKind(MISS_SELF_ID); } + //class Foo { + //public: + //Foo& operator=(Foo& f) noexcept (false); + //}; + //Foo& Foo::operator=(Foo& f) noexcept (false) { + // if (this != &f) { + // return *this; + // } + // return *this; + //} + public void testWithNoErrorNoexcept() throws Exception { + loadCodeAndRun(getAboveComment()); + checkNoErrorsOfKind(MISS_REF_ID); + checkNoErrorsOfKind(MISS_SELF_ID); + } + //class Foo { //public: //Foo operator=(const Foo& f);