blob: 2611827d2ace0725b57bb7d70d85c91f3d5f991a [file] [log] [blame]
Daniel Dunbara5728872009-12-15 20:14:24 +00001// RUN: %clang_cc1 %s -verify -fsyntax-only
Chris Lattner34f349d2009-12-14 06:16:57 +00002
3// Test that we recover gracefully from conflict markers left in input files.
4// PR5238
5
Jordan Rose78541c42012-07-11 19:58:23 +00006// diff3 style expected-error@+1 {{version control conflict marker in file}}
7<<<<<<< .mine
Chris Lattner34f349d2009-12-14 06:16:57 +00008int x = 4;
9|||||||
10int x = 123;
11=======
12float x = 17;
13>>>>>>> .r91107
14
Jordan Rose78541c42012-07-11 19:58:23 +000015// normal style expected-error@+1 {{version control conflict marker in file}}
16<<<<<<< .mine
Chris Lattner34f349d2009-12-14 06:16:57 +000017typedef int y;
18=======
19typedef struct foo *y;
20>>>>>>> .r91107
21
Jordan Rose78541c42012-07-11 19:58:23 +000022// Perforce style expected-error@+1 {{version control conflict marker in file}}
23>>>> ORIGINAL conflict-marker.c#6
Richard Smithd5e1d602011-10-12 00:37:51 +000024int z = 1;
25==== THEIRS conflict-marker.c#7
26int z = 0;
27==== YOURS conflict-marker.c
28int z = 2;
29<<<<
30
Chris Lattner34f349d2009-12-14 06:16:57 +000031;
32y b;
33
Chris Lattner3d488992010-05-17 20:27:25 +000034
Chris Lattner34f349d2009-12-14 06:16:57 +000035int foo() {
36 y a = x;
Richard Smithd5e1d602011-10-12 00:37:51 +000037 return x + a - z;
Chris Lattner34f349d2009-12-14 06:16:57 +000038}
Stephen Hines0e2c34f2015-03-23 12:09:02 -070039
40<<<<<<<>>>>>>> // expected-error {{expected identifier}}