// This file intentionally has a bug.  It is intended
// to be used with serialized-diagnostics.c to show
// how errors are handled with #includes in serialized
// diagnostics.
char *badStr = 1;
