198d62cc8bfd8825f0ab48027a7e01c13390487deDouglas Gregor// Header for PCH test namespaces.cpp 298d62cc8bfd8825f0ab48027a7e01c13390487deDouglas Gregor 398d62cc8bfd8825f0ab48027a7e01c13390487deDouglas Gregornamespace N1 { 498d62cc8bfd8825f0ab48027a7e01c13390487deDouglas Gregor typedef int t1; 598d62cc8bfd8825f0ab48027a7e01c13390487deDouglas Gregor} 698d62cc8bfd8825f0ab48027a7e01c13390487deDouglas Gregor 798d62cc8bfd8825f0ab48027a7e01c13390487deDouglas Gregornamespace N1 { 898d62cc8bfd8825f0ab48027a7e01c13390487deDouglas Gregor typedef int t2; 9b063d153c55d662ec34f4773387bc45d2289ff74Chris Lattner 10b063d153c55d662ec34f4773387bc45d2289ff74Chris Lattner void used_func(); 11b063d153c55d662ec34f4773387bc45d2289ff74Chris Lattner 12b063d153c55d662ec34f4773387bc45d2289ff74Chris Lattner struct used_cls { }; 1398d62cc8bfd8825f0ab48027a7e01c13390487deDouglas Gregor} 1498d62cc8bfd8825f0ab48027a7e01c13390487deDouglas Gregor 1598d62cc8bfd8825f0ab48027a7e01c13390487deDouglas Gregornamespace N2 { 1698d62cc8bfd8825f0ab48027a7e01c13390487deDouglas Gregor typedef float t1; 17b063d153c55d662ec34f4773387bc45d2289ff74Chris Lattner 18b063d153c55d662ec34f4773387bc45d2289ff74Chris Lattner namespace Inner { 19b063d153c55d662ec34f4773387bc45d2289ff74Chris Lattner typedef int t3; 20b063d153c55d662ec34f4773387bc45d2289ff74Chris Lattner }; 21b063d153c55d662ec34f4773387bc45d2289ff74Chris Lattner} 22b063d153c55d662ec34f4773387bc45d2289ff74Chris Lattner 23b063d153c55d662ec34f4773387bc45d2289ff74Chris Lattnernamespace { 24b063d153c55d662ec34f4773387bc45d2289ff74Chris Lattner void anon() { } 25b063d153c55d662ec34f4773387bc45d2289ff74Chris Lattner class C; 26b063d153c55d662ec34f4773387bc45d2289ff74Chris Lattner} 27b063d153c55d662ec34f4773387bc45d2289ff74Chris Lattner 28b063d153c55d662ec34f4773387bc45d2289ff74Chris Lattnernamespace N3 { 29b063d153c55d662ec34f4773387bc45d2289ff74Chris Lattner namespace { 30b063d153c55d662ec34f4773387bc45d2289ff74Chris Lattner class C; 31b063d153c55d662ec34f4773387bc45d2289ff74Chris Lattner } 32b063d153c55d662ec34f4773387bc45d2289ff74Chris Lattner} 33b063d153c55d662ec34f4773387bc45d2289ff74Chris Lattner 34b063d153c55d662ec34f4773387bc45d2289ff74Chris Lattnernamespace Alias1 = N2::Inner; 35b063d153c55d662ec34f4773387bc45d2289ff74Chris Lattner 36b063d153c55d662ec34f4773387bc45d2289ff74Chris Lattnerusing namespace N2::Inner; 37b063d153c55d662ec34f4773387bc45d2289ff74Chris Lattner 38b063d153c55d662ec34f4773387bc45d2289ff74Chris Lattnerextern "C" { 39b063d153c55d662ec34f4773387bc45d2289ff74Chris Lattner void ext(); 4098d62cc8bfd8825f0ab48027a7e01c13390487deDouglas Gregor} 41ac9aaf7d8f31aaeb2b7ee1dcf7c75783258bf439Douglas Gregor 42ac9aaf7d8f31aaeb2b7ee1dcf7c75783258bf439Douglas Gregorinline namespace N4 { 43ac9aaf7d8f31aaeb2b7ee1dcf7c75783258bf439Douglas Gregor struct MemberOfN4; 44ac9aaf7d8f31aaeb2b7ee1dcf7c75783258bf439Douglas Gregor} 45