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