[clang][modules] Don't prevent translation of FW_Private includes when explicitly...
[llvm-project.git] / clang / test / Analysis / exceptions.mm
blob0e776373b62a857ba8003061fe3d3a59d339ed44
1 // RUN: %clang_analyze_cc1 -fexceptions -fobjc-exceptions -fcxx-exceptions -analyzer-checker=core,unix.Malloc,debug.ExprInspection -verify %s
3 void clang_analyzer_checkInlined(bool);
5 typedef typeof(sizeof(int)) size_t;
6 void *malloc(size_t);
7 void free(void *);
10 id getException();
11 void inlinedObjC() {
12   clang_analyzer_checkInlined(true); // expected-warning{{TRUE}}
13   @throw getException();
16 int testObjC() {
17   int a; // uninitialized
18   void *mem = malloc(4); // no-warning (ObjC exceptions are usually fatal)
19   inlinedObjC();
20   free(mem);
21   return a; // no-warning
25 void inlinedCXX() {
26   clang_analyzer_checkInlined(true); // expected-warning{{TRUE}}
27   throw -1;
30 int testCXX() {
31   int a; // uninitialized
32   // FIXME: this should be reported as a leak, because C++ exceptions are
33   // often not fatal.
34   void *mem = malloc(4);
35   inlinedCXX();
36   free(mem);
37   return a; // no-warning