llvm-project/clang/test/Analysis/inline-not-supported.c
Jordan Rose 4d9fbd7ec4 [analyzer] -analyzer-ipa=inlining is now the default. Remove it from tests.
The actual change here is a little more complicated than the summary above.
What we want to do is have our generic inlining tests run under whatever
mode is the default. However, there are some tests that depend on the
presence of C++ inlining, which still has some rough edges. These tests have
been explicitly marked as -analyzer-ipa=inlining in preparation for a new
mode that limits inlining to C functions and blocks. This will be the
default until the false positives for C++ have been brought down to
manageable levels.

llvm-svn: 162317
2012-08-21 21:44:07 +00:00

30 lines
554 B
C

// RUN: %clang_cc1 -fblocks -analyze -analyzer-checker=core -verify %s
// For now, don't inline varargs.
void foo(int *x, ...) {
*x = 1;
}
void bar() {
foo(0, 2); // no-warning
}
// For now, don't inline vararg blocks.
void (^baz)(int *x, ...) = ^(int *x, ...) { *x = 1; };
void taz() {
baz(0, 2); // no-warning
}
// For now, don't inline global blocks.
void (^qux)(int *p) = ^(int *p) { *p = 1; };
void test_qux() {
qux(0); // no-warning
}
void test_analyzer_is_running() {
int *p = 0;
*p = 0xDEADBEEF; // expected-warning {{null}}
}