10a264f39SAlex Lorenz // RUN: env SDKROOT="/" %clang -emit-llvm -S -o %t1.ll -x c++ - < %s 20a264f39SAlex Lorenz // RUN: env SDKROOT="/" %clang -fno-delayed-template-parsing -emit-ast -o %t.ast %s 30a264f39SAlex Lorenz // RUN: env SDKROOT="/" %clang -emit-llvm -S -o %t2.ll -x ast - < %t.ast 4c00f43a3SArgyrios Kyrtzidis // RUN: diff %t1.ll %t2.ll 5c00f43a3SArgyrios Kyrtzidis 6c00f43a3SArgyrios Kyrtzidis // http://llvm.org/bugs/show_bug.cgi?id=15377 7c00f43a3SArgyrios Kyrtzidis template<typename T> 8c00f43a3SArgyrios Kyrtzidis struct S { 9c00f43a3SArgyrios Kyrtzidis T *mf(); 10c00f43a3SArgyrios Kyrtzidis }; 11c00f43a3SArgyrios Kyrtzidis template<typename T> mf()12c00f43a3SArgyrios KyrtzidisT *S<T>::mf() { 13*5c50109bSDávid Bolvanský // warning: non-void function does not return a value [-Wreturn-type] 14c00f43a3SArgyrios Kyrtzidis } 15c00f43a3SArgyrios Kyrtzidis f()16c00f43a3SArgyrios Kyrtzidisvoid f() { 17c00f43a3SArgyrios Kyrtzidis S<int>().mf(); 18c00f43a3SArgyrios Kyrtzidis } 19c00f43a3SArgyrios Kyrtzidis main()20c00f43a3SArgyrios Kyrtzidisint main() { 21c00f43a3SArgyrios Kyrtzidis return 0; 22c00f43a3SArgyrios Kyrtzidis } 23