const char *s0 = m0;
int s1 = m1;
const char *s2 = m0;

// FIXME: This test fails inexplicably on Windows in a manner that makes it 
// look like standard error isn't getting flushed properly.

// RUN: true
// RUNx: echo '#define m0 ""' > %t.h
// RUNx: %clang_cc1 -emit-pch -o %t.h.pch %t.h
// RUNx: echo '' > %t.h
// RUNx: not %clang_cc1 -include-pch %t.h.pch %s 2> %t.stderr
// RUNx: grep "modified" %t.stderr

// RUNx: echo '#define m0 000' > %t.h
// RUNx: %clang_cc1 -emit-pch -o %t.h.pch %t.h
// RUNx: echo '' > %t.h
// RUNx: not %clang_cc1 -include-pch %t.h.pch %s 2> %t.stderr
// RUNx: grep "modified" %t.stderr

// RUNx: echo '#define m0 000' > %t.h
// RUNx: echo "#define m1 'abcd'" >> %t.h
// RUNx: %clang_cc1 -emit-pch -o %t.h.pch %t.h
// RUNx: echo '' > %t.h
// RUNx: not %clang_cc1 -include-pch %t.h.pch %s 2> %t.stderr
// RUNx: grep "modified" %t.stderr

const char *s0 = m0;
int s1 = m1;
const char *s2 = m0;

// FIXME: This test fails inexplicably on Windows in a manner that makes it 
// look like standard error isn't getting flushed properly.

// RUN: false
// XFAIL: *

// RUN: echo '#define m0 ""' > %t.h
// RUN: %clang_cc1 -emit-pch -o %t.h.pch %t.h
// RUN: echo '' > %t.h
// RUN: not %clang_cc1 -include-pch %t.h.pch %s 2> %t.stderr
// RUN: grep "modified" %t.stderr

// RUN: echo '#define m0 000' > %t.h
// RUN: %clang_cc1 -emit-pch -o %t.h.pch %t.h
// RUN: echo '' > %t.h
// RUN: not %clang_cc1 -include-pch %t.h.pch %s 2> %t.stderr
// RUN: grep "modified" %t.stderr

// RUN: echo '#define m0 000' > %t.h
// RUN: echo "#define m1 'abcd'" >> %t.h
// RUN: %clang_cc1 -emit-pch -o %t.h.pch %t.h
// RUN: echo '' > %t.h
// RUN: not %clang_cc1 -include-pch %t.h.pch %s 2> %t.stderr
// RUN: grep "modified" %t.stderr

Use Daniel's trick for XFAIL'd tests
Use Daniel's trick for XFAIL'd tests

git-svn-id: ffe668792ed300d6c2daa1f6eba2e0aa28d7ec6c@99515 91177308-0d34-0410-b5e6-96231b3b80d8
