blob: 2a8e43b0cbdf4ec19637f1eb1d02eaeedeec4860 [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
6// diff3 style
Chris Lattner3d488992010-05-17 20:27:25 +00007<<<<<<< .mine // expected-error {{version control conflict marker in file}}
Chris Lattner34f349d2009-12-14 06:16:57 +00008int x = 4;
9|||||||
10int x = 123;
11=======
12float x = 17;
13>>>>>>> .r91107
14
15// normal style.
Chris Lattner3d488992010-05-17 20:27:25 +000016<<<<<<< .mine // expected-error {{version control conflict marker in file}}
Chris Lattner34f349d2009-12-14 06:16:57 +000017typedef int y;
18=======
19typedef struct foo *y;
20>>>>>>> .r91107
21
Richard Smithd5e1d602011-10-12 00:37:51 +000022// Perforce style.
23>>>> ORIGINAL conflict-marker.c#6 // expected-error {{version control conflict marker in file}}
24int 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}