Clang Project

clang_source_code/test/Analysis/diagnostics/report-issues-within-main-file.cpp
1// RUN: %clang_analyze_cc1 -analyzer-checker=core,unix -analyzer-output=plist-multi-file -analyzer-config report-in-main-source-file=true %s -o %t.plist
2// RUN: cat %t.plist | %diff_plist %S/Inputs/expected-plists/report-issues-within-main-file.cpp.plist -
3#include "Inputs/include/report-issues-within-main-file.h"
4
5void mainPlusHeader() {
6  auto_ptr<int> B (new int[5]);
7}
8
9void auxInMain() {
10  int j = 0;
11  j++;
12  cause_div_by_zero_in_header(j);
13  j--;
14}
15void mainPlusMainPlusHeader() {
16  int i = 0;
17  i++;
18  auxInMain();
19  i++;
20}
21
22void causeDivByZeroInMain(int in) {
23  int m = 0;
24  m = in/m;
25  m++;
26}
27void mainPlusMain() {
28  int i = 0;
29  i++;
30  causeDivByZeroInMain(i);
31  i++;
32}
33
34void causeDivByZeroInMain2(int in) {
35  int m2 = 0;
36  m2 = in/m2;
37  m2++;
38}
39
40void mainPlustHeaderCallAndReturnPlusMain() {
41  int i = 0;
42  i++;
43  do_something(i);
44  causeDivByZeroInMain2(i);
45  i++;
46}
47
48void callInMacro() {
49  int j = 0;
50  j++;
51  CALLS_BUGGY_FUNCTION2;
52  j--;
53}
54
55void callInMacro3() {
56  int j = 0;
57  j++;
58  CALLS_BUGGY_FUNCTION3;
59  j--;
60}
61
62void callCallInMacro3() {
63  callInMacro3();
64}
65
66void callInMacroArg() {
67  int j = 0;
68  j++;
69  TAKE_CALL_AS_ARG(cause_div_by_zero_in_header4(5));
70  j--;
71}
72