xref: /llvm-project/clang/test/Analysis/unified-sources/source2.cpp (revision 516837f2a1585d4a2a620162cc996ca763046e7d)
1*516837f2SArtem Dergachev // RUN: %clang_analyze_cc1 -analyzer-checker=core -verify %s
2*516837f2SArtem Dergachev 
3*516837f2SArtem Dergachev // This test tests that the warning is here when it is included from
4*516837f2SArtem Dergachev // the unified sources file. The run-line in this file is there
5*516837f2SArtem Dergachev // only to suppress LIT warning for the complete lack of run-line.
testNullDereference()6*516837f2SArtem Dergachev int testNullDereference() {
7*516837f2SArtem Dergachev   int *x = 0;
8*516837f2SArtem Dergachev   return *x; // expected-warning{{}}
9*516837f2SArtem Dergachev }
10*516837f2SArtem Dergachev 
11*516837f2SArtem Dergachev // Let's see if the container inlining heuristic still works.
12*516837f2SArtem Dergachev class ContainerInCodeFile {
13*516837f2SArtem Dergachev   class Iterator {
14*516837f2SArtem Dergachev   };
15*516837f2SArtem Dergachev 
16*516837f2SArtem Dergachev public:
17*516837f2SArtem Dergachev   Iterator begin() const;
18*516837f2SArtem Dergachev   Iterator end() const;
19*516837f2SArtem Dergachev 
method()20*516837f2SArtem Dergachev   int method() { return 0; }
21*516837f2SArtem Dergachev };
22*516837f2SArtem Dergachev 
testContainerMethodInCodeFile(ContainerInCodeFile Cont)23*516837f2SArtem Dergachev int testContainerMethodInCodeFile(ContainerInCodeFile Cont) {
24*516837f2SArtem Dergachev   return 1 / Cont.method(); // expected-warning{{}}
25*516837f2SArtem Dergachev }
26