/* C99 6.10.8 para 4: None of [the predefined macro names] shall be
   the subject of a #define or an #undef preprocessing directive.  */

/* { dg-do preprocess } */

#undef __DATE__		/* { dg-warning "-:undefining \"__DATE__\"" } */
#undef __TIME__		/* { dg-warning "-:undefining \"__TIME__\"" } */
#undef __FILE__		/* { dg-warning "-:undefining \"__FILE__\"" } */
#undef __LINE__		/* { dg-warning "undefining \"__LINE__\"" } */
#undef __STDC__		/* { dg-warning "undefining \"__STDC__\"" } */

/* These should be protected from #undef, but aren't, because they
   are set with normal #define commands - and on top of that, some
   of them are library properties, outside our control.  To consider:
   warn about undefining/redefining any identifier beginning with
   __STDC_ .

   __STDC_HOSTED__
   __STDC_VERSION__
   __STDC_IEC_559__
   __STDC_IEC_559_COMPLEX__
   __STDC_ISO_10646__
 */
