Index: test/CXX/basic/basic.def.odr/p2-sizeof.cpp
===================================================================
--- test/CXX/basic/basic.def.odr/p2-sizeof.cpp	(revision 0)
+++ test/CXX/basic/basic.def.odr/p2-sizeof.cpp	(revision 0)
@@ -0,0 +1,10 @@
+// RUN: clang-cc -fsyntax-only -verify %s
+
+struct X {int a;};
+int *a;
+extern int b;
+
+int c = sizeof(X);
+int d = sizeof(*a);
+int e = sizeof(b);
+
Index: test/CXX/basic/basic.def.odr/p1.cpp
===================================================================
--- test/CXX/basic/basic.def.odr/p1.cpp	(revision 0)
+++ test/CXX/basic/basic.def.odr/p1.cpp	(revision 0)
@@ -0,0 +1,17 @@
+// RUN: clang-cc -fsyntax-only -verify %s
+
+int a = 0;	// expected-note{{previous definition}}
+int a = 1;	// expected-error{{redefinition of 'a'}}
+
+int f(int x) {return x+a;}	// expected-note{{previous definition}}
+int f(int y) {return y+y;}	// expected-error{{redefinition of 'f'}}
+
+struct X {};	// expected-note{{previous definition}}
+struct X {int x;};	// expected-error{{redefinition of 'X'}}
+
+enum Y {c,d};	// expected-note{{previous definition}}
+enum Y {q,r};	// expected-error{{redefinition of 'Y'}}
+
+template<typename> int T(void) {return 0;} // expected-note{{previous definition}}
+template<typename> int T(void) {return a;} // expected-error{{redefinition of 'T'}}
+
Index: test/CXX/basic/basic.def.odr/p3.cpp
===================================================================
--- test/CXX/basic/basic.def.odr/p3.cpp	(revision 0)
+++ test/CXX/basic/basic.def.odr/p3.cpp	(revision 0)
@@ -0,0 +1,20 @@
+// RUN: clang-cc -fsyntax-only -verify %s
+
+int a;
+int f(int x) {return x+a;}
+int g(int y);	// Defined elsewhere
+inline int z(int x) {return x+x;}
+inline int z2(int x);
+
+void test(void)
+{
+	a = 0;
+	f(a);
+	g(a);
+
+	b = 0;	// expected-error{{use of undeclared identifier}}
+	h(a);	// expected-error{{no matching function for call}}
+
+	z(2);
+	z2(2);
+}
Index: test/CXX/basic/basic.def.odr/p4.cpp
===================================================================
--- test/CXX/basic/basic.def.odr/p4.cpp	(revision 0)
+++ test/CXX/basic/basic.def.odr/p4.cpp	(revision 0)
@@ -0,0 +1,15 @@
+// RUN: clang-cc -fsyntax-only -verify %s
+
+struct X;	// expected-note{{forward declaration}}
+struct X* x1;
+X* x2;
+X x3;	// expected-error{{invald use of incomplete type}}
+
+struct X
+{
+	int a;
+	X(): a(0) {}
+};
+
+X x4;
+
Index: test/CXX/basic/basic.scope/p1.cpp
===================================================================
--- test/CXX/basic/basic.scope/p1.cpp	(revision 0)
+++ test/CXX/basic/basic.scope/p1.cpp	(revision 0)
@@ -0,0 +1,11 @@
+// RUN: clang-cc -fsyntax-only -verify %s
+
+// Taken from the standard.
+
+int j = 24;
+void test(void)
+{
+	int i = j, j;	// i is assigned outer j (24)
+	j = 42;			// inner j is assigned 42
+}
+
Index: test/CXX/basic/basic.def/p1.cpp
===================================================================
--- test/CXX/basic/basic.def/p1.cpp	(revision 0)
+++ test/CXX/basic/basic.def/p1.cpp	(revision 0)
@@ -0,0 +1,8 @@
+// RUN: clang-cc -fsyntax-only -verify %s
+
+int a;
+int f(void);
+
+int a;
+int f(void);
+
Index: test/CXX/basic/basic.def/p2.cpp
===================================================================
--- test/CXX/basic/basic.def/p2.cpp	(revision 0)
+++ test/CXX/basic/basic.def/p2.cpp	(revision 0)
@@ -0,0 +1,30 @@
+// RUN: clang-cc -fsyntax-only -verify %s
+
+// Taken directly from the standard.
+
+extern int a;
+extern const int c;
+int f(int);
+struct S;
+typedef int Int;
+
+int a;
+extern const int c = 1;	// expected-warning{{'extern' variable has an initializer}}
+int f(int x) {return x+a;}
+struct S {int a; int b;};
+struct X
+{
+	int x;
+	static int y;
+	X(): x(0) {}
+};
+
+int X::y = 1;
+enum {up, down};
+namespace N {int d;}
+namespace N1 = N;
+X anX;
+
+extern X anotherX;
+using N::d;
+
Index: test/CXX/basic/basic.def/p3.cpp
===================================================================
--- test/CXX/basic/basic.def/p3.cpp	(revision 0)
+++ test/CXX/basic/basic.def/p3.cpp	(revision 0)
@@ -0,0 +1,13 @@
+// RUN: clang-cc -fsyntax-only -verify %s
+
+struct C
+{
+	int x;
+};
+
+int main(void)
+{
+	C a;
+	C b = a;
+	b = a;
+}
Index: test/CXX/basic/basic.def/p5.cpp
===================================================================
--- test/CXX/basic/basic.def/p5.cpp	(revision 0)
+++ test/CXX/basic/basic.def/p5.cpp	(revision 0)
@@ -0,0 +1,6 @@
+// RUN: clang-cc -fsyntax-only -verify %s
+
+struct X;	// expected-note{{forward declaration}}
+
+X a;	// expected-error{{invalid use of incomplete type}}
+
