40 lines · cpp
1// RUN: %clang_analyze_cc1 \2// RUN: -analyzer-checker=core -analyzer-config \3// RUN: silence-checkers=core \4// RUN: -verify %s5 6// RUN: %clang_analyze_cc1 \7// RUN: -analyzer-checker=core -analyzer-config \8// RUN: silence-checkers="core.DivideZero;core.NullDereference" \9// RUN: -verify %s10 11// RUN: not %clang_analyze_cc1 -verify %s \12// RUN: -analyzer-checker=core -analyzer-config \13// RUN: silence-checkers=core.NullDeref \14// RUN: 2>&1 | FileCheck %s -check-prefix=CHECK-CHECKER-ERROR15 16// CHECK-CHECKER-ERROR: (frontend): no analyzer checkers or packages17// CHECK-CHECKER-ERROR-SAME: are associated with 'core.NullDeref'18 19// RUN: not %clang_analyze_cc1 -verify %s \20// RUN: -analyzer-checker=core -analyzer-config \21// RUN: silence-checkers=coreModeling \22// RUN: 2>&1 | FileCheck %s -check-prefix=CHECK-PACKAGE-ERROR23 24// CHECK-PACKAGE-ERROR: (frontend): no analyzer checkers or packages25// CHECK-PACKAGE-ERROR-SAME: are associated with 'coreModeling'26 27void test_disable_core_div_by_zero() {28 (void)(1 / 0);29 // expected-warning@-1 {{division by zero is undefined}}30 // no-warning: 'Division by zero'31}32 33void test_disable_null_deref(int *p) {34 if (p)35 return;36 37 int x = p[0];38 // no-warning: Array access (from variable 'p') results in a null pointer dereference39}40