| Summary: | false positive when break is part of an if/else block | ||
|---|---|---|---|
| Product: | [Tools] CDT | Reporter: | Matt Hargett <matt> |
| Component: | cdt-codan | Assignee: | Elena Laskavaia <elaskavaia.cdt> |
| Status: | RESOLVED FIXED | QA Contact: | Elena Laskavaia <elaskavaia.cdt> |
| Severity: | normal | ||
| Priority: | P3 | CC: | cdtdoug, malaperle |
| Version: | 8.0 | ||
| Target Milestone: | 8.0 | ||
| Hardware: | PC | ||
| OS: | Linux | ||
| Whiteboard: | |||
fixed (rewrote checker because current implementation was very complex and was not supporting complex structures, it was trying to use ast visitor which would not work for such checker) *** cdt cvs genie on behalf of elaskavaia *** Bug 343676: rewrote case checker to support complex structures [*] CaseBreakChecker.java 1.8 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt/codan/org.eclipse.cdt.codan.checkers/src/org/eclipse/cdt/codan/internal/checkers/CaseBreakChecker.java?root=Tools_Project&r1=1.7&r2=1.8 [*] CaseBreakCheckerTest.java 1.6 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt/codan/org.eclipse.cdt.codan.core.test/src/org/eclipse/cdt/codan/core/internal/checkers/CaseBreakCheckerTest.java?root=Tools_Project&r1=1.5&r2=1.6 |
Build Identifier: 201104150807 When a switch has a case, and the case has a break inside of a branching statement, the aforementioned warning gives a false positive: "No break at the end of this case" Reproducible: Always Steps to Reproduce: code like this: switch(type) { case ELEM_TYPE_ACCEPT: if (http_pipeline_base_request0->accept_rewrite || policyAcceptModified) continue; else break; } }