-
Notifications
You must be signed in to change notification settings - Fork 3
Labels
bugSomething isn't workingSomething isn't working
Description
Describe the bug
In case of generated files (tested with genrule(), but should apply to every generation method)
Versions
CodeChecker 6.26.0bazel 6.5.0- ff788bf
To Reproduce
Run this script and run bazel build //app:per_file_rule, observe that the foo.cpp doesn't get analyzed!
mkdir present-bug
cd present-bug
cat > WORKSPACE <<'endtag'
#----------------------------------------------------
load("@bazel_tools//tools/build_defs/repo:git.bzl", "git_repository")
git_repository(
name = "bazel_codechecker",
remote = "https://github.com/Ericsson/codechecker_bazel.git",
branch = "main",
)
load(
"@bazel_codechecker//src:tools.bzl",
"register_default_codechecker",
"register_default_python_toolchain",
)
register_default_python_toolchain()
register_default_codechecker()
#----------------------------------------------------
endtag
mkdir app
cat > app/BUILD <<'endtag'
#-------------------------------------------------------
# codechecker rules
load(
"@bazel_codechecker//src:codechecker.bzl",
"codechecker_test",
)
load(
"@bazel_codechecker//src:per_file.bzl",
"per_file_test",
)
codechecker_test(
name = "codechecker_test",
targets = [
":hello_app",
],
)
per_file_test(
name = "per_file_test",
targets = [
":hello_app",
],
options = ["--ctu"]
)
#-------------------------------------------------------
genrule(
name = "create_header",
# This is the file we will generate.
outs = ["generated_message.h"],
cmd = "echo 'static const char* MESSAGE = \"Hello from a generated file!\";\nint asd = 0;' > $(location generated_message.h)",
)
genrule(
name = "create_foo",
outs = [
"gen_foo.h",
"gen_foo.cpp",
],
cmd = "echo 'int foo();' > $(location gen_foo.h) && echo 'int foo() { return 0; }' > $(location gen_foo.cpp)",
)
cc_binary(
name = "hello_app",
srcs = [
"main.cpp",
":generated_message.h",
":gen_foo.h",
":gen_foo.cpp",
],
)
endtag
cat > app/main.cpp <<'endtag'
#include <iostream>
#include "app/generated_message.h"
#include "app/gen_foo.h"
int main() {
std::cout << MESSAGE << std::endl;
int y = 1/foo();
return 0/asd;
}
endtagExpected behaviour
Both main.cpp and foo.cpp to be analyzed
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't working