1 // RUN: %clang -emit-llvm -S -o %t1.ll -x c++ - < %s
2 // RUN: %clang -fno-delayed-template-parsing -emit-ast -o %t.ast %s
3 // RUN: %clang -emit-llvm -S -o %t2.ll -x ast - < %t.ast
4 // RUN: diff %t1.ll %t2.ll
5 
6 // http://llvm.org/bugs/show_bug.cgi?id=15377
7 template<typename T>
8 struct S {
9     T *mf();
10 };
11 template<typename T>
mf()12 T *S<T>::mf() {
13     // warning: control reaches end of non-void function [-Wreturn-type]
14 }
15 
f()16 void f() {
17     S<int>().mf();
18 }
19 
main()20 int main() {
21   return 0;
22 }
23