blob: 5146129772f96d359bf59ec03a55d6c304a1395e (
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
|
#define NULL ((void*)0)
#define MY_ASSERT(COND) \
do { \
if (!(COND)) { __builtin_abort(); } \
} while (0)
int test_1 (int *p)
{
int result = *p;
MY_ASSERT (p); /* { dg-warning "check of 'p' for NULL after already dereferencing it" "" { xfail *-*-* } } */
/* Due to lack of locations for gimple arguments we can't get
at the location of the condition separately from the
gimple_cond stmt, and thus can't distinguish if it's in the
macro definition or in the supplied params; we defer to
rejecting the diagnostic. */
return result;
}
int test_2 (int *p)
{
int result = *p;
MY_ASSERT (p != NULL); /* { dg-warning "check of 'p' for NULL after already dereferencing it" "" { xfail *-*-* } } */
return result;
}
|