Skip to content

Conversation

@KushalRU11
Copy link

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)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant