blob: 19bc4f937f629fd0257d7e8cd52facc6234a8802 [file] [log] [blame]
#include "analyzer-decls.h"
/* According to PR 107807 comment #2, OS X implements "errno"
like this: */
extern int * __error(void);
#define errno (*__error())
extern void external_fn (void);
int test_reading_errno (void)
{
return errno;
}
void test_setting_errno (int val)
{
errno = val;
}
void test_storing_to_errno (int val)
{
__analyzer_eval (errno == val); /* { dg-warning "UNKNOWN" } */
errno = val;
__analyzer_eval (errno == val); /* { dg-warning "TRUE" } */
external_fn ();
__analyzer_eval (errno == val); /* { dg-warning "UNKNOWN" } */
}