aboutsummaryrefslogtreecommitdiffstats
path: root/pkg/clangtool
diff options
context:
space:
mode:
authorDmitry Vyukov <dvyukov@google.com>2025-11-17 11:17:23 +0100
committerDmitry Vyukov <dvyukov@google.com>2025-11-20 10:10:05 +0000
commit280ea308c321115445df610f1a75b05bbadca5f3 (patch)
treec195c76723c4a08986d74edbfc9e15a4f07fa6c1 /pkg/clangtool
parent94d1e3f8b1838e8a04074464a957e979a5c5e36b (diff)
pkg/codesearch: add skeleton for code searching tool
Add a clang tool that is used for code indexing (tools/clang/codesearch/). It follows conventions and build procedure of the declextract tool. Add pkg/codesearch package that aggregates the info exposed by the clang tools, and allows doing simple queries: - show source code of an entity (function, struct, etc) - show entity comment - show all entities defined in a source file Add tools/syz-codesearch wrapper tool that allows to create index for a kernel build, and then run code queries on it.
Diffstat (limited to 'pkg/clangtool')
-rw-r--r--pkg/clangtool/clangtool.go5
1 files changed, 4 insertions, 1 deletions
diff --git a/pkg/clangtool/clangtool.go b/pkg/clangtool/clangtool.go
index 4e3914cf8..8711b5411 100644
--- a/pkg/clangtool/clangtool.go
+++ b/pkg/clangtool/clangtool.go
@@ -155,7 +155,10 @@ func runTool[Output any, OutputPtr OutputDataPtr[Output]](cfg *Config, dbFile, f
cfg.KernelSrc), cfg.KernelObj), "/")
// Suppress warning since we may build the tool on a different clang
// version that produces more warnings.
- data, err := exec.Command(cfg.ToolBin, "-p", dbFile, "--extra-arg=-w", file).Output()
+ // Comments are needed for codesearch tool, but may be useful for declextract
+ // in the future if we try to parse them with LLMs.
+ data, err := exec.Command(cfg.ToolBin, "-p", dbFile,
+ "--extra-arg=-w", "--extra-arg=-fparse-all-comments", file).Output()
if err != nil {
var exitErr *exec.ExitError
if errors.As(err, &exitErr) {