1*67e74705SXin Li // RUN: %clang_cc1 %s -verify -fsyntax-only 2*67e74705SXin Li 3*67e74705SXin Li // Test that we recover gracefully from conflict markers left in input files. 4*67e74705SXin Li // PR5238 5*67e74705SXin Li 6*67e74705SXin Li // diff3 style expected-error@+1 {{version control conflict marker in file}} 7*67e74705SXin Li <<<<<<< .mine 8*67e74705SXin Li int x = 4; 9*67e74705SXin Li ||||||| 10*67e74705SXin Li int x = 123; 11*67e74705SXin Li ======= 12*67e74705SXin Li float x = 17; 13*67e74705SXin Li >>>>>>> .r91107 14*67e74705SXin Li 15*67e74705SXin Li // normal style expected-error@+1 {{version control conflict marker in file}} 16*67e74705SXin Li <<<<<<< .mine 17*67e74705SXin Li typedef int y; 18*67e74705SXin Li ======= 19*67e74705SXin Li typedef struct foo *y; 20*67e74705SXin Li >>>>>>> .r91107 21*67e74705SXin Li 22*67e74705SXin Li // Perforce style expected-error@+1 {{version control conflict marker in file}} 23*67e74705SXin Li >>>> ORIGINAL conflict-marker.c#6 24*67e74705SXin Li int z = 1; 25*67e74705SXin Li ==== THEIRS conflict-marker.c#7 26*67e74705SXin Li int z = 0; 27*67e74705SXin Li ==== YOURS conflict-marker.c 28*67e74705SXin Li int z = 2; 29*67e74705SXin Li <<<< 30*67e74705SXin Li 31*67e74705SXin Li ; 32*67e74705SXin Li y b; 33*67e74705SXin Li 34*67e74705SXin Li foo()35*67e74705SXin Liint foo() { 36*67e74705SXin Li y a = x; 37*67e74705SXin Li return x + a - z; 38*67e74705SXin Li } 39*67e74705SXin Li 40*67e74705SXin Li <<<<<<<>>>>>>> // expected-error {{expected identifier}} 41