Home | History | Annotate | Download | only in Analysis
      1 // RUN: %clang_cc1 -analyze -analyzer-checker=core -verify %s
      2 
      3 int f1(char *dst) {
      4   char *p = dst + 4;
      5   char *q = dst + 3;
      6   return !(q >= p);
      7 }
      8 
      9 long f2(char *c) {
     10   return long(c) & 1;
     11 }
     12 
     13 bool f3() {
     14   return !false;
     15 }
     16 
     17 void *f4(int* w) {
     18   return reinterpret_cast<void*&>(w);
     19 }
     20 
     21 namespace {
     22 
     23 struct A { };
     24 struct B {
     25   operator A() { return A(); }
     26 };
     27 
     28 A f(char *dst) {
     29   B b;
     30   return b;
     31 }
     32 
     33 }
     34 
     35 namespace {
     36 
     37 struct S {
     38     void *p;
     39 };
     40 
     41 void *f(S* w) {
     42     return &reinterpret_cast<void*&>(*w);
     43 }
     44 
     45 }
     46 
     47 namespace {
     48 
     49 struct C {
     50   void *p;
     51   static void f();
     52 };
     53 
     54 void C::f() { }
     55 
     56 }
     57