| // RUN: %clang -emit-llvm -S -o %t1.ll -x c++ - < %s | |
| // RUN: %clang -fno-delayed-template-parsing -emit-ast -o %t.ast %s | |
| // RUN: %clang -emit-llvm -S -o %t2.ll -x ast - < %t.ast | |
| // RUN: diff %t1.ll %t2.ll | |
| // http://llvm.org/bugs/show_bug.cgi?id=15377 | |
| template<typename T> | |
| struct S { | |
| T *mf(); | |
| }; | |
| template<typename T> | |
| T *S<T>::mf() { | |
| // warning: control reaches end of non-void function [-Wreturn-type] | |
| } | |
| void f() { | |
| S<int>().mf(); | |
| } | |
| int main() { | |
| return 0; | |
| } |