本文整理汇总了C++中clang_analyzer_eval函数的典型用法代码示例。如果您正苦于以下问题:C++ clang_analyzer_eval函数的具体用法?C++ clang_analyzer_eval怎么用?C++ clang_analyzer_eval使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了clang_analyzer_eval函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的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
示例16: testConsistencyNestedVariableModification
// PR16664 and PR18159
void testConsistencyNestedVariableModification(bool value) {
bool other = true;
if (value) {
if (!other || !value || (other = false) || check(NoReturnDtor()) ||
!other) {
clang_analyzer_eval(true); // no warning, unreachable code
}
}
}
开发者ID:Bekenn,项目名称:clang,代码行数:10,代码来源:temporaries.cpp
示例17: testAliasingBetweenParameterAndCapture
void testAliasingBetweenParameterAndCapture() {
int i = 5;
auto l = [&i](int &p) {
i++;
p++;
};
l(i);
clang_analyzer_eval(i == 7); // expected-warning{{TRUE}}
}
开发者ID:kelveb,项目名称:clang,代码行数:10,代码来源:lambdas.cpp
示例18: callMutableLambdaMultipleTimes
void callMutableLambdaMultipleTimes(int &p) {
int v = 0;
p = 8;
auto l = [&v, p]() mutable {
v = p;
p++;
};
l();
clang_analyzer_eval(v == 8); // expected-warning{{TRUE}}
clang_analyzer_eval(p == 8); // expected-warning{{TRUE}}
l();
clang_analyzer_eval(v == 9); // expected-warning{{TRUE}}
clang_analyzer_eval(p == 8); // expected-warning{{TRUE}}
}
开发者ID:kelveb,项目名称:clang,代码行数:19,代码来源:lambdas.cpp
示例19: captureFields
void captureFields() {
i = 5;
[this]() {
// clang_analyzer_eval does nothing in inlined functions.
if (i != 5)
clang_analyzer_warnIfReached();
++i;
}();
clang_analyzer_eval(i == 6); // expected-warning{{TRUE}}
}
开发者ID:kelveb,项目名称:clang,代码行数:10,代码来源:lambdas.cpp
示例20: testFunctionPointerReturn
void testFunctionPointerReturn(void *opaque) {
typedef int &(*RefFn)();
RefFn getRef = (RefFn)opaque;
// Don't crash writing to or reading from this reference.
int &x = getRef();
x = 42;
clang_analyzer_eval(x == 42); // expected-warning{{TRUE}}
}
开发者ID:8l,项目名称:emscripten-fastcomp-clang,代码行数:10,代码来源:reference.cpp
注:本文中的clang_analyzer_eval函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论