blob: 17ff8b7de9dc291c5197b6bff01f2897c70daff1 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
#include "analyzer-decls.h"
/* According to PR 107807 comment #2, Solaris implements "errno"
like this: */
extern int *___errno(void) __attribute__((__const__));
#define errno (*(___errno()))
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" } */
}
|