Add function scope identifier #105
Open
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR introduces a new Clang-based tool: FunctionScopeIdentifier.
The tool identifies C/C++ functions that span specific line ranges in a source file. It extends Clang’s tooling interface by supporting a custom command-line option:
-identify-scope-range=
Example usage:
./bin/FunctionScopeIdentifier -identify-scope-range=5-10,12-15 test.cpp -- -std=c++17
The tool reports all functions that overlap with the specified line ranges, including the function name and its start/end lines. This can assist with code analysis, refactoring, and tooling automation.
Key Features
Accepts multiple line ranges via -identify-scope-range (e.g. 5-10,12-18)
Uses Clang AST matchers to identify function declarations with bodies
Outputs function names and their source line spans that intersect the given ranges
Supports standard Clang compilation arguments (e.g. -I, -D)
Files Added
clang/tools/FunctionScopeIdentifier/FunctionScopeIdentifier.cpp
clang/tools/FunctionScopeIdentifier/CMakeLists.txt
test-files/test.cpp
test-files/test1.cpp
test-files/test.ll (IR generated for validation)