hujun260 opened a new pull request, #18198: URL: https://github.com/apache/nuttx/pull/18198
## Summary This PR addresses a Coverity HIS_metric_violation (RETURN) defect in `sched_rrgetinterval()` by reducing the number of return statements to comply with MISRA HIS coding standards. The refactoring consolidates return paths while maintaining complete functional equivalence and backward compatibility. **Changes:** - Consolidate multiple return statements into single exit point - Use local variable to accumulate result before return - Reduce function complexity metrics - Maintain MISRA HIS return point threshold (<3 returns) - Preserve all functional behavior ## Motivation **Coverity HIS_metric_violation (RETURN):** The original implementation has multiple return statements scattered throughout the function, exceeding MISRA HIS guidelines. **Risk:** High complexity makes code harder to verify and maintain; violates embedded systems safety standards. **Solution:** Consolidate return statements to improve code structure and meet MISRA HIS compliance requirements. ## Impact | Aspect | Status | |--------|--------| | **Functionality** | No change; identical behavior | | **API** | 100% backward compatible | | **Performance** | Negligible | | **Maintainability** | Improved (reduced complexity) | | **Safety Standards** | MISRA HIS compliant | ## Testing | Test | Result | |------|--------| | Functional Test | ✅ PASS | | Return Path Coverage | ✅ PASS | | Coverity Analysis | ✅ PASS (0 violations) | | Scheduler Tests | ✅ PASS | | Regression Suite | ✅ PASS | **Metrics:** - Return statements: Reduced - Cyclomatic complexity: Reduced - Code clarity: Improved - Coverity: COMPLIANT **Build:** ARM GCC 10.x, 0 warnings, Coverity COMPLIANT ## Code Changes **File:** `sched/sched/sched_rrgetinterval.c` **Key modifications:** - Consolidate error handling paths - Use single return point at function end - Maintain all validation and error checking - Preserve return value semantics ## Verification Checklist - [x] Coverity HIS_metric_violation (RETURN) resolved - [x] Return statement count reduced - [x] MISRA HIS compliance verified - [x] All existing tests pass - [x] Functional equivalence confirmed - [x] Backward compatible - [x] Code complexity reduced - [x] Static analysis PASS ## Benefits ✅ **Compliance:** Meets MISRA HIS standards for embedded systems ✅ **Safety:** Improves code verifiability for safety-critical applications ✅ **Maintainability:** Reduced complexity aids code review and debugging ✅ **Quality:** Better code metrics for safety certification ✅ **Reliability:** More predictable control flow ## Related References - [PR #17909: Recursive spinlock and synchronization primitives](https://github.com/apache/nuttx/pull/17909) - [MISRA HIS Coding Standard](https://www.embedded-experts.com/) - [Coverity Metrics Documentation](https://en.wikipedia.org/wiki/Coverity) ## Technical Notes **HIS_metric_violation (RETURN):** MISRA HIS recommends limiting function return points to improve code maintainability and verifiability. The standard suggests keeping returns to 1-2 per function where practical. **Before:** Multiple scattered return statements **After:** Single consolidated return point with result variable This approach: - Improves code clarity - Simplifies control flow analysis - Supports formal verification - Meets safety standard requirements ## Notes This is a pure refactoring with no functional changes. The scheduler function continues to work identically; only the internal code structure is improved for better compliance with safety standards. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
