brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.2 KiB · 53f3c37 Raw
40 lines · plain
1// RUN: %clang_analyze_cc1 -analyzer-checker=core,debug.ExprInspection -verify -Wno-objc-literal-conversion %s2 3void clang_analyzer_eval(bool);4@class NSString;5 6void sanity() {7  clang_analyzer_eval(@""); // expected-warning{{TRUE}}8  clang_analyzer_eval(@"abc"); // expected-warning{{TRUE}}9}10 11namespace rdar13773117 {12  NSString *const kConstantGlobalString = @"foo";13  NSString *globalString = @"bar";14 15  extern void invalidateGlobals();16 17  void testGlobals() {18    clang_analyzer_eval(kConstantGlobalString); // expected-warning{{TRUE}}19    clang_analyzer_eval(globalString); // expected-warning{{UNKNOWN}}20 21    globalString = @"baz";22    clang_analyzer_eval(globalString); // expected-warning{{TRUE}}23 24    invalidateGlobals();25 26    clang_analyzer_eval(kConstantGlobalString); // expected-warning{{TRUE}}27    clang_analyzer_eval(globalString); // expected-warning{{UNKNOWN}}28  }29 30  NSString *returnString(NSString *input = @"garply") {31    return input;32  }33 34  void testDefaultArg() {35    clang_analyzer_eval(returnString(@"")); // expected-warning{{TRUE}}36    clang_analyzer_eval(returnString(0)); // expected-warning{{FALSE}}37    clang_analyzer_eval(returnString()); // expected-warning{{TRUE}}38  }39}40