1 /* C99 6.10.8 para 4: None of [the predefined macro names] shall be
2    the subject of a #define or an #undef preprocessing directive.  */
3 
4 /* { dg-do preprocess } */
5 
6 #undef __DATE__		/* { dg-warning "-:undefining \"__DATE__\"" } */
7 #undef __TIME__		/* { dg-warning "-:undefining \"__TIME__\"" } */
8 #undef __FILE__		/* { dg-warning "-:undefining \"__FILE__\"" } */
9 #undef __LINE__		/* { dg-warning "undefining \"__LINE__\"" } */
10 #undef __STDC__		/* { dg-warning "undefining \"__STDC__\"" } */
11 
12 /* These should be protected from #undef, but aren't, because they
13    are set with normal #define commands - and on top of that, some
14    of them are library properties, outside our control.  To consider:
15    warn about undefining/redefining any identifier beginning with
16    __STDC_ .
17 
18    __STDC_HOSTED__
19    __STDC_VERSION__
20    __STDC_IEC_559__
21    __STDC_IEC_559_COMPLEX__
22    __STDC_ISO_10646__
23  */
24