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 Dergachevint 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 Dergachevint testContainerMethodInCodeFile(ContainerInCodeFile Cont) { 24*516837f2SArtem Dergachev return 1 / Cont.method(); // expected-warning{{}} 25*516837f2SArtem Dergachev } 26