misc-no-recursion

Finds strongly connected functions (by analyzing the call graph for SCC’s (Strongly Connected Components) that are loops), diagnoses each function in the cycle, and displays one example of a possible call graph loop (recursion).

References: * CERT C++ Coding Standard rule DCL56-CPP. Avoid cycles during initialization of static objects. * JPL Institutional Coding Standard for the C Programming Language (JPL DOCID D-60411) rule 2.4 Do not use direct or indirect recursion. * OpenCL Specification, Version 1.2 rule 6.9 Restrictions: i. Recursion is not supported..

Limitations: * The check does not handle calls done through function pointers * The check does not handle C++ destructors