xref: /aosp_15_r20/external/clang/test/Lexer/conflict-marker.c (revision 67e74705e28f6214e480b399dd47ea732279e315)
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 Li int 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