xref: /aosp_15_r20/external/clang/test/Analysis/inline-not-supported.c (revision 67e74705e28f6214e480b399dd47ea732279e315)
1*67e74705SXin Li // RUN: %clang_cc1 -fblocks -analyze -analyzer-checker=core -verify %s
2*67e74705SXin Li 
3*67e74705SXin Li // For now, don't inline varargs.
foo(int * x,...)4*67e74705SXin Li void foo(int *x, ...) {
5*67e74705SXin Li   *x = 1;
6*67e74705SXin Li }
7*67e74705SXin Li 
bar()8*67e74705SXin Li void bar() {
9*67e74705SXin Li   foo(0, 2); // no-warning
10*67e74705SXin Li }
11*67e74705SXin Li 
12*67e74705SXin Li // For now, don't inline vararg blocks.
13*67e74705SXin Li void (^baz)(int *x, ...) = ^(int *x, ...) { *x = 1; };
14*67e74705SXin Li 
taz()15*67e74705SXin Li void taz() {
16*67e74705SXin Li   baz(0, 2); // no-warning
17*67e74705SXin Li }
18*67e74705SXin Li 
19*67e74705SXin Li // For now, don't inline global blocks.
20*67e74705SXin Li void (^qux)(int *p) = ^(int *p) { *p = 1; };
test_qux()21*67e74705SXin Li void test_qux() {
22*67e74705SXin Li   qux(0); // no-warning
23*67e74705SXin Li }
24*67e74705SXin Li 
25*67e74705SXin Li 
test_analyzer_is_running()26*67e74705SXin Li void test_analyzer_is_running() {
27*67e74705SXin Li   int *p = 0;
28*67e74705SXin Li   *p = 0xDEADBEEF; // expected-warning {{null}}
29*67e74705SXin Li }
30