15b9cc5df25c2198f270dd1d5c438fdce70d4051dSebastian Redl// RUN: %clang_cc1 -fsyntax-only %s 25b9cc5df25c2198f270dd1d5c438fdce70d4051dSebastian Redl 35b9cc5df25c2198f270dd1d5c438fdce70d4051dSebastian Redltemplate <typename T> 45b9cc5df25c2198f270dd1d5c438fdce70d4051dSebastian Redlstruct foo { 55b9cc5df25c2198f270dd1d5c438fdce70d4051dSebastian Redl struct bar; 65b9cc5df25c2198f270dd1d5c438fdce70d4051dSebastian Redl 75b9cc5df25c2198f270dd1d5c438fdce70d4051dSebastian Redl bar fn() { 85b9cc5df25c2198f270dd1d5c438fdce70d4051dSebastian Redl // Should not get errors about bar being incomplete here. 95b9cc5df25c2198f270dd1d5c438fdce70d4051dSebastian Redl bar b = bar(1, 2); 105b9cc5df25c2198f270dd1d5c438fdce70d4051dSebastian Redl return b; 115b9cc5df25c2198f270dd1d5c438fdce70d4051dSebastian Redl } 125b9cc5df25c2198f270dd1d5c438fdce70d4051dSebastian Redl}; 135b9cc5df25c2198f270dd1d5c438fdce70d4051dSebastian Redl 145b9cc5df25c2198f270dd1d5c438fdce70d4051dSebastian Redltemplate <typename T> 155b9cc5df25c2198f270dd1d5c438fdce70d4051dSebastian Redlstruct foo<T>::bar { 165b9cc5df25c2198f270dd1d5c438fdce70d4051dSebastian Redl bar(int, int); 175b9cc5df25c2198f270dd1d5c438fdce70d4051dSebastian Redl}; 185b9cc5df25c2198f270dd1d5c438fdce70d4051dSebastian Redl 195b9cc5df25c2198f270dd1d5c438fdce70d4051dSebastian Redlvoid fn() { 205b9cc5df25c2198f270dd1d5c438fdce70d4051dSebastian Redl foo<int>().fn(); 215b9cc5df25c2198f270dd1d5c438fdce70d4051dSebastian Redl} 22