xref: /llvm-project/llvm/test/tools/sancov/Inputs/test.cpp (revision c89755e4cbad7a46d747f3b2d49c50a80855a801)
114a06ac0SMike Aizatsky // compile & generate coverage data using:
2*c89755e4SMike Aizatsky // clang++ -g -o test-linux_x86_64 -fsanitize=address -fsanitize-coverage=bb test.cpp ../Inputs/foo.cpp
3*c89755e4SMike Aizatsky // ASAN_OPTIONS="coverage=1" ./test-linux_x86_64 && mv test-linux_x86_64.??*.sancov test-linux_x86_64.0.sancov
4*c89755e4SMike Aizatsky // ASAN_OPTIONS="coverage=1" ./test-linux_x86_64 1 && mv test-linux_x86_64.??*.sancov test-linux_x86_64.1.sancov
514a06ac0SMike Aizatsky 
614a06ac0SMike Aizatsky #include <stdio.h>
714a06ac0SMike Aizatsky #include <string>
814a06ac0SMike Aizatsky 
914a06ac0SMike Aizatsky void foo();
1014a06ac0SMike Aizatsky 
1114a06ac0SMike Aizatsky __attribute__((noinline))
bar(std::string str)1214a06ac0SMike Aizatsky std::string bar(std::string str) { printf("bar\n"); return str; }
1314a06ac0SMike Aizatsky 
main(int argc,char ** argv)1414a06ac0SMike Aizatsky int main(int argc, char **argv) {
1514a06ac0SMike Aizatsky     if (argc == 2)
1614a06ac0SMike Aizatsky         foo();
1714a06ac0SMike Aizatsky     bar("str");
1814a06ac0SMike Aizatsky     printf("main\n");
1914a06ac0SMike Aizatsky }
20