brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.6 KiB · 744a156 Raw
56 lines · c
1// RUN: %clang_analyze_cc1 -verify %s \2// RUN:   -analyzer-checker=core \3// RUN:   -analyzer-checker=apiModeling.Errno \4// RUN:   -analyzer-checker=debug.ErrnoTest \5// RUN:   -analyzer-checker=unix.Errno \6// RUN:   -analyzer-config unix.Errno:AllowErrnoReadOutsideConditionExpressions=false \7// RUN:   -DERRNO_VAR8 9// RUN: %clang_analyze_cc1 -verify %s \10// RUN:   -analyzer-checker=core \11// RUN:   -analyzer-checker=apiModeling.Errno \12// RUN:   -analyzer-checker=debug.ErrnoTest \13// RUN:   -analyzer-checker=unix.Errno \14// RUN:   -analyzer-config unix.Errno:AllowErrnoReadOutsideConditionExpressions=false \15// RUN:   -DERRNO_FUNC16 17#include "Inputs/system-header-simulator.h"18#ifdef ERRNO_VAR19#include "Inputs/errno_var.h"20#endif21#ifdef ERRNO_FUNC22#include "Inputs/errno_func.h"23#endif24 25int ErrnoTesterChecker_setErrnoIfError();26 27void test_cond() {28  ErrnoTesterChecker_setErrnoIfError();29  int A = errno ? 1 : 2;30  // expected-warning@-1{{An undefined value may be read from 'errno'}}31}32 33void test_errno_store_into_variable() {34  ErrnoTesterChecker_setErrnoIfError();35  int a = errno;36  // expected-warning@-1{{An undefined value may be read from 'errno'}}37}38 39void test_errno_store_into_variable_in_expr() {40  ErrnoTesterChecker_setErrnoIfError();41  int a = 4 + errno;42  // expected-warning@-1{{An undefined value may be read from 'errno'}}43}44 45int test_errno_return() {46  ErrnoTesterChecker_setErrnoIfError();47  return errno;48  // expected-warning@-1{{An undefined value may be read from 'errno'}}49}50 51int test_errno_return_expr() {52  ErrnoTesterChecker_setErrnoIfError();53  return errno > 10;54  // expected-warning@-1{{An undefined value may be read from 'errno'}}55}56