brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.4 KiB · 78af92c Raw
41 lines · c
1// RUN: %clang_analyze_cc1 -triple x86_64-apple-darwin10 -analyzer-checker=core,debug.ExprInspection -analyzer-config ipa=none -fblocks -analyzer-config eagerly-assume=false -verify %s2// RUN: %clang_analyze_cc1 -triple x86_64-apple-darwin10 -analyzer-checker=core,debug.ExprInspection -analyzer-config ipa=none -fblocks -analyzer-config eagerly-assume=false -verify -x c++ %s3 4void clang_analyzer_eval(int);5 6void testInvalidation(void) {7  __block int i = 0;8  ^{9    ++i;10  }();11 12  // Under inlining, we will know that i == 1.13  clang_analyzer_eval(i == 0); // expected-warning{{UNKNOWN}}14}15 16 17const int globalConstant = 1;18void testCapturedConstants(void) {19  const int localConstant = 2;20  static const int staticConstant = 3;21 22  ^{23    clang_analyzer_eval(globalConstant == 1); // expected-warning{{TRUE}}24    clang_analyzer_eval(localConstant == 2); // expected-warning{{TRUE}}25    clang_analyzer_eval(staticConstant == 3); // expected-warning{{TRUE}}26  }();27}28 29typedef const int constInt;30constInt anotherGlobalConstant = 1;31void testCapturedConstantsTypedef(void) {32  constInt localConstant = 2;33  static constInt staticConstant = 3;34 35  ^{36    clang_analyzer_eval(anotherGlobalConstant == 1); // expected-warning{{TRUE}}37    clang_analyzer_eval(localConstant == 2); // expected-warning{{TRUE}}38    clang_analyzer_eval(staticConstant == 3); // expected-warning{{TRUE}}39  }();40}41