1 /* { dg-do compile } */
2 /* { dg-options "-O2 -fdump-tree-dom2 -fdelete-null-pointer-checks" } */
3 
4 extern void exit (int);
5 extern void *ggc_alloc (__SIZE_TYPE__);
6 typedef struct dw_attr_struct *dw_attr_ref;
7 typedef struct dw_attr_struct
8 {
9   int dw_attr;
10 }
11 dw_attr_node;
12 void
foo(int attr_kind,unsigned long offset)13 foo (int attr_kind, unsigned long offset)
14 {
15   dw_attr_ref attr = (dw_attr_ref) ggc_alloc (sizeof (dw_attr_node));
16   attr->dw_attr = attr_kind;
17   if (attr != ((void *)0))
18     exit (0);
19 }
20 
21 /* There should be no IF conditionals, unless target disables -fdelete-null-pointer-checks  */
22 /* { dg-final { scan-tree-dump-times "if " 0 "dom2" { target { ! keeps_null_pointer_checks } } } } */
23 /* { dg-final { scan-tree-dump "if " "dom2" { target { keeps_null_pointer_checks } } } } */
24 
25