blob: 93716e72385ee8b849538a9b00365dd0636d2db1 [file] [log] [blame]
# Inference of nullability annotations
load("@rules_proto//proto:defs.bzl", "proto_library")
package(default_applicable_licenses = ["//:license"])
cc_library(
name = "collect_evidence",
srcs = ["collect_evidence.cc"],
hdrs = ["collect_evidence.h"],
deps = [
":inference_cc_proto",
":inferrable",
"//nullability:pointer_nullability",
"//nullability:pointer_nullability_analysis",
"//nullability:pointer_nullability_lattice",
"//nullability:type_nullability",
"@absl//absl/log:check",
"@llvm-project//clang:analysis",
"@llvm-project//clang:ast",
"@llvm-project//clang:basic",
"@llvm-project//clang:index",
"@llvm-project//llvm:Support",
],
)
cc_test(
name = "collect_evidence_test",
srcs = ["collect_evidence_test.cc"],
deps = [
":collect_evidence",
":inference_cc_proto",
"@llvm-project//clang:ast",
"@llvm-project//clang:ast_matchers",
"@llvm-project//clang:basic",
"@llvm-project//clang:testing",
"@llvm-project//clang/unittests:dataflow_testing_support",
"@llvm-project//llvm:Support",
"@llvm-project//third-party/unittest:gmock",
"@llvm-project//third-party/unittest:gtest",
"@llvm-project//third-party/unittest:gtest_main",
],
)
cc_library(
name = "merge",
srcs = ["merge.cc"],
hdrs = ["merge.h"],
deps = [
":inference_cc_proto",
"@absl//absl/log:check",
"@llvm-project//llvm:Support",
],
)
cc_test(
name = "merge_test",
srcs = ["merge_test.cc"],
deps = [
":inference_cc_proto",
":merge",
"//nullability:proto_matchers",
"//third_party/protobuf",
"@absl//absl/log:check",
"@llvm-project//llvm:Support",
"@llvm-project//third-party/unittest:gmock",
"@llvm-project//third-party/unittest:gtest",
"@llvm-project//third-party/unittest:gtest_main",
],
)
cc_library(
name = "inferrable",
srcs = ["inferrable.cc"],
hdrs = ["inferrable.h"],
deps = [
"//nullability:type_nullability",
"@llvm-project//clang:ast",
"@llvm-project//clang:basic",
],
)
cc_test(
name = "inferrable_test",
srcs = ["inferrable_test.cc"],
deps = [
":inference_cc_proto",
":inferrable",
"@llvm-project//clang:ast",
"@llvm-project//clang:basic",
"@llvm-project//clang:testing",
"@llvm-project//clang/unittests:dataflow_testing_support",
"@llvm-project//llvm:Support",
"@llvm-project//third-party/unittest:gmock",
"@llvm-project//third-party/unittest:gtest",
"@llvm-project//third-party/unittest:gtest_main",
],
)
cc_library(
name = "infer_tu",
srcs = ["infer_tu.cc"],
hdrs = ["infer_tu.h"],
deps = [
":collect_evidence",
":inference_cc_proto",
":merge",
"@llvm-project//clang:ast",
"@llvm-project//clang:basic",
"@llvm-project//llvm:Support",
],
)
cc_test(
name = "infer_tu_test",
srcs = ["infer_tu_test.cc"],
deps = [
":collect_evidence",
":infer_tu",
":inference_cc_proto",
"//nullability:proto_matchers",
"@llvm-project//clang:ast",
"@llvm-project//clang:ast_matchers",
"@llvm-project//clang:basic",
"@llvm-project//clang:index",
"@llvm-project//clang:testing",
"@llvm-project//llvm:Support",
"@llvm-project//third-party/unittest:gmock",
"@llvm-project//third-party/unittest:gtest",
"@llvm-project//third-party/unittest:gtest_main",
],
)
cc_binary(
name = "infer_tu_main",
srcs = ["infer_tu_main.cc"],
deps = [
":collect_evidence",
":infer_tu",
":inference_cc_proto",
"@absl//absl/log:check",
"@llvm-project//clang:ast",
"@llvm-project//clang:basic",
"@llvm-project//clang:frontend",
"@llvm-project//clang:index",
"@llvm-project//clang:tooling",
"@llvm-project//llvm:Support",
],
)
proto_library(
name = "inference_proto",
srcs = ["inference.proto"],
)
cc_proto_library(
name = "inference_cc_proto",
deps = [":inference_proto"],
)