当前位置: 首页>>代码示例>>C++>>正文


C++ clang_analyzer_eval函数代码示例

本文整理汇总了C++中clang_analyzer_eval函数的典型用法代码示例。如果您正苦于以下问题:C++ clang_analyzer_eval函数的具体用法?C++ clang_analyzer_eval怎么用?C++ clang_analyzer_eval使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。


在下文中一共展示了clang_analyzer_eval函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: testConsistencyNestedWarning

 // PR16664 and PR18159
 void testConsistencyNestedWarning(bool value) {
   if (value) {
     if (!value || value || check(NoReturnDtor())) {
       clang_analyzer_eval(true); // expected-warning{{TRUE}}
     }
   }
 }
开发者ID:AlexDenisov,项目名称:clang,代码行数:8,代码来源:temporaries.cpp

示例2: testLoop

 void testLoop() {
   for (int i = 0; i < 10; ++i) {
     if (i < 3 && (i >= 2 || check(NoReturnDtor()))) {
       clang_analyzer_eval(true);  // no warning, unreachable code
     }
   }
 }
开发者ID:AlexDenisov,项目名称:clang,代码行数:7,代码来源:temporaries.cpp

示例3: testConsistencyNestedComplexNestedBranch

 // PR16664 and PR18159
 void testConsistencyNestedComplexNestedBranch(bool value) {
   if (value) {
     if (!value || (!value || check(NoReturnDtor()) || value)) {
       clang_analyzer_eval(true);  // no warning, unreachable code
     }
   }
 }
开发者ID:AlexDenisov,项目名称:clang,代码行数:8,代码来源:temporaries.cpp

示例4: testConsistencyIf

 void testConsistencyIf(int i) {
   if (i != 5)
     return;
   if (i == 5 && (i == 4 || check(NoReturnDtor()) || i == 5)) {
     clang_analyzer_eval(true); // no warning, unreachable code
   }
 }
开发者ID:AlexDenisov,项目名称:clang,代码行数:7,代码来源:temporaries.cpp

示例5: OperatorEvaluationTest

void OperatorEvaluationTest(int y) {
  int x = 1;
	int w = x ?: y;  // expected-note {{'?' condition is true}}
	
	// TODO: We are not precise when processing the "?:" operator in C++.
  clang_analyzer_eval(w == 1); // expected-warning{{UNKNOWN}}
                               // [email protected]{{UNKNOWN}}
}
开发者ID:4ntoine,项目名称:clang,代码行数:8,代码来源:conditional-operator.cpp

示例6: testConstrainState

void testConstrainState(int p) {
  ASSERT_TRUE(p == 7);

  clang_analyzer_eval(p == 7); // expected-warning {{TRUE}}

  ASSERT_TRUE(false);
  clang_analyzer_warnIfReached(); // no-warning
}
开发者ID:cms-externals,项目名称:clang,代码行数:8,代码来源:gtest.cpp

示例7: testReturnValue

void testReturnValue() {
  int i = 5;
  auto l = [i] (int a) {
    return i + a;
  };
  int b = l(3);
  clang_analyzer_eval(b == 8); // expected-warning{{TRUE}}
}
开发者ID:kelveb,项目名称:clang,代码行数:8,代码来源:lambdas.cpp

示例8: testFunctionPointerCapture

void testFunctionPointerCapture() {
  void (*func)(int &) = inc;
  int i = 5;
  [&i, func] {
    func(i);
  }();
  clang_analyzer_eval(i == 6); // expected-warning{{TRUE}}
}
开发者ID:kelveb,项目名称:clang,代码行数:8,代码来源:lambdas.cpp

示例9: f8

void f8() {
  C *after, *before;
  {
    A a[2] = {C(false, nullptr, nullptr), C(true, &after, &before)};
  }
  // FIXME: Should be TRUE. Should not warn about garbage value.
  clang_analyzer_eval(after == before); // expected-warning{{UNKNOWN}}
}
开发者ID:qiongsiwu,项目名称:CLang,代码行数:8,代码来源:lifetime-extension.cpp

示例10: checkThatConstMethodCallDoesInvalidateObjectForCircularReferences

void checkThatConstMethodCallDoesInvalidateObjectForCircularReferences() {
  Outer2 t;
  t.x = 1;
  t.in.ref = &t;
  t.foo();
  // FIXME: Should be UNKNOWN.
  clang_analyzer_eval(t.x); // expected-warning{{TRUE}}
}
开发者ID:Teemperor,项目名称:clang,代码行数:8,代码来源:const-method-call.cpp

示例11: testStrlenCallee

void testStrlenCallee() {
  char str[42];
  invalidate(str);
  size_t lenBefore = strlenWrapper(str);
  invalidate(str);
  size_t lenAfter = strlenWrapper(str);
  clang_analyzer_eval(lenBefore == lenAfter); // expected-warning{{UNKNOWN}}
}
开发者ID:AntonBikineev,项目名称:clang,代码行数:8,代码来源:string.c

示例12: testCtorInitializer

void testCtorInitializer() {
  AddressVector<ClassWithDestructor> v;
  {
    TestCtorInitializer t(v);
    // Check if the last destructor is an automatic destructor.
    // A temporary destructor would have fired by now.
#if ELIDE
    clang_analyzer_eval(v.len == 1); // expected-warning{{TRUE}}
#else
    clang_analyzer_eval(v.len == 3); // expected-warning{{TRUE}}
#endif
  }
#if ELIDE
  // 0. Construct the member variable.
  // 1. Destroy the member variable.
  clang_analyzer_eval(v.len == 2); // expected-warning{{TRUE}}
  clang_analyzer_eval(v.buf[0] == v.buf[1]); // expected-warning{{TRUE}}
#else
  // 0. Construct the temporary.
  // 1. Construct the member variable.
  // 2. Destroy the temporary.
  // 3. Destroy the member variable.
  clang_analyzer_eval(v.len == 4); // expected-warning{{TRUE}}
  clang_analyzer_eval(v.buf[0] == v.buf[2]); // expected-warning{{TRUE}}
  clang_analyzer_eval(v.buf[1] == v.buf[3]); // expected-warning{{TRUE}}
#endif
}
开发者ID:Teemperor,项目名称:clang,代码行数:27,代码来源:copy-elision.cpp

示例13: test

  void test() {
	Derived* p;
	*(reinterpret_cast<void**>(&p)) = new C;
	p->f();

    // We should still be able to do some reasoning about bindings.
    p->x = 42;
    clang_analyzer_eval(p->x == 42); // expected-warning{{TRUE}}
  };
开发者ID:8l,项目名称:emscripten-fastcomp-clang,代码行数:9,代码来源:reinterpret-cast.cpp

示例14: loopWithCall

void loopWithCall() {
  void *arr[2];
  for (int i = 0; i < 2; ++i) {
    int x;
    arr[i] = &x;
  }
  // FIXME: Should be UNKNOWN.
  clang_analyzer_eval(arr[0] == arr[1]); // expected-warning{{TRUE}}
}
开发者ID:LegalizeAdulthood,项目名称:clang,代码行数:9,代码来源:loop-block-counts.c

示例15: f

void f() {
  const int &x = A().i; // no-crash
  const int &y = A().j[1]; // no-crash
  const int &z = (A().j[1], A().j[0]); // no-crash

  clang_analyzer_eval(x == 1);
  clang_analyzer_eval(y == 3);
  clang_analyzer_eval(z == 2);
#ifdef TEMPORARIES
  // [email protected]{{TRUE}}
  // [email protected]{{TRUE}}
  // [email protected]{{TRUE}}
#else
  // [email protected]{{UNKNOWN}}
  // [email protected]{{UNKNOWN}}
  // [email protected]{{UNKNOWN}}
#endif
}
开发者ID:qiongsiwu,项目名称:CLang,代码行数:18,代码来源:lifetime-extension.cpp


注:本文中的clang_analyzer_eval函数示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。